클래스의 재미에서 도달 할 수있는 초기화없이 Kotlin에서 val을 어떻게 선언 할 수 있습니까?

에두아르도 코로나

저는 데이터를 저장하기 위해 DB를 사용하고 로더로 쿼리하는 Kotlin에서 콘텐츠 제공 업체를 만들고 있는데, 문제는 내 DBHelper 변수가 onCreate, 쿼리, 업데이트 등 모든 기능에서 도달 할 수 있어야한다는 것입니다. java 이것은 쉽지만 Kotlin에서는 IDE에서 val을 초기화해야한다고 알려주고 init 블록을 사용해 보았지만 android studio에서는 onCreate ()에서 DBHelper를 초기화해야한다고 말합니다.

그렇다면 클래스의 모든 함수에 도달 할 수 있고 Java와 같은 onCreate 함수에서 초기화 할 수있는 값을 Kotlin에서 어떻게 만들 수 있습니까?

이것은 내 코드입니다.

public class ProviderMMR : ContentProvider() {
var dbHelper


companion object Matcher{
    var uriMatcher = UriMatcher(UriMatcher.NO_MATCH)

    init{
        uriMatcher.addURI(MMDContract.columnas.AUTHORITY,MMDContract.columnas.TABLA_FARMACIA,1)
    }

}

override fun onCreate(): Boolean {
    dbHelper  =  mmrbd(context)

    return true
}

override fun insert(uri: Uri?, values: ContentValues?): Uri {
    val db = dbHelper.writableDatabase

    val rowID = db.insert(MMDContract.columnas.TABLA_FARMACIA, null, values)


    val uri_actividad = ContentUris.withAppendedId(MMDContract.columnas.CONTENT_BASE_URI, rowID)

    return uri_actividad



}

override fun query(uri: Uri?, projection: Array<out String>?, selection: String?, selectionArgs: Array<out String>?, sortOrder: String?): Cursor {
    TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}


override fun update(uri: Uri?, values: ContentValues?, selection: String?, selectionArgs: Array<out String>?): Int {
    TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}

override fun delete(uri: Uri?, selection: String?, selectionArgs: Array<out String>?): Int {
    TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}

override fun getType(uri: Uri?): String {
    TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}

}

Pawel

첫 번째 액세스에서 dbHelper 개체를 만드는 지연 대리자를 사용할 수도 있습니다.

val dbHelper by lazy { mmrbd(context) }

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

TOP 리스트

  1. 1

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  2. 2

    상황에 맞는 메뉴 색상

  3. 3

    java.lang.UnsatisfiedLinkError : 지정된 모듈을 찾을 수 없습니다

  4. 4

    SMTPException : 전송 연결에서 데이터를 읽을 수 없음 : net_io_connectionclosed

  5. 5

    std :: regex의 일관성없는 동작

  6. 6

    Ionic 2 로더가 적시에 표시되지 않음

  7. 7

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  8. 8

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  9. 9

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  10. 10

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  11. 11

    SQL Server-현명한 데이터 문제 받기

  12. 12

    Windows cmd를 통해 Anaconda 환경에서 Python 스크립트 실행

  13. 13

    rclone으로 원격 디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

  14. 14

    내 페이지 번호의 서식을 어떻게 지정합니까?

  15. 15

    Cassandra에서 버전이 지정된 계층의 효율적인 모델링

  16. 16

    Quickly 프로그램과 함께 작동하도록 Eclipse를 어떻게 설정할 수 있습니까?

  17. 17

    인코더없이 Azure 미디어 서비스 비디오 트림

  18. 18

    WSL 및 Ubuntu, 초기화 파일 이동 방법

  19. 19

    OpenCV에서. C ++ 컴파일러는 간단한 테스트 프로그램을 컴파일 할 수 없습니다. Clang ++ 사용

  20. 20

    마우스 휠 JQuery 이벤트 핸들러에 대한 방향 가져 오기

  21. 21

    ViewModel에서 UI 요소를 비동 시적으로 업데이트하는 방법

뜨겁다태그

보관