마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Andorid Arch : Room 질문입니다

0 추천

 

// MainActivity.kt

(커스텀 스레드 중)

var table = "0 1 2 3 4 5 6 7 8 9"

var tableArr = table.split(" ")

val tableArr = table2.split(" ") Log.i("DEBUG ", (table2).toString())

// db 추가 val db = Room.databaseBuilder(applicationContext, Appdatabase::class.java, "libData.db").build()

db.libDataDao().insert(libData = (tableArr.text.toString())) result_text.text = db.libDataDao().getAll().toString()


 

// libData.kt

@Entity

data class LibData(  

    var title:String

) {

    @PrimaryKey(autoGenerate = true)

    var id: String = "" ,

    var All: String = "" ,

    var In_Use: String = "" ,

    var Remaining: String = "" ,

    var Usage: String = "" ,

    var Waiting: String = "" ,

    var Calling: String = "" ,

    var Scheduled: String = "" ,

}



안녕하세요 이번에 파이썬으로 개발했던 프로그램을 안드로이드에 포팅하려고 하던 중

안드로이드에는 pandas라는 라이브러리가 없어 sql데이터베이스를 쉽게 할 수 있는 Room라이브러리를 발견해 사용하려 합니다

제가 하려던 것은 html상의 테이블을 가져와 문자열로 반환한 뒤 ("0 0 0 0 0 12%" 이런 형식) 배열에 넣은 뒤

dao의 insert를 통해 넣으려고 하는데 libData 형식이 아니라면서 실패했습니다.

 

그래서 유튜브 예제를 보고 따라했습니다 예제는 텍스트를 입력해 todo리스트를 만드는 것입니다.
 


@Entity

data class Todo(

     var title:String

) {

    @PrimaryKey(autoGenerate = true)

    var id: Int = 0

}




이런 식으로 primary키와 string으로 된 todo입니다.

그래서

info, All, In_Use, Remaining, Usage, Waiting, Calling, Scheduled 총 8개의 데이터가 있는 libData를 만들었습니다

(도서관 자리 크롤링하는 앱입니다)
 


@Entity

data class LibData(

var title:String

) {

@PrimaryKey(autoGenerate = true)

    var id: String = "" ,

    var All: String = "" ,

    var In_Use: String = "" ,

    var Remaining: String = "" ,

    var Usage: String = "" ,

    var Waiting: String = "" ,

    var Calling: String = "" ,

    var Scheduled: String = "" ,

}




이런식으로 바꿨으나 콤마(,)부분에서 getter and setter expexted이라고 에러가 뜹니다.

그래서 찾아보니 코틀린은 var같은 경우 자동으로 두 개가 생성된다고 합니다.

 

이 부분에 대해서 도움을 받고자 질문글을 올렸습니다

감사합니다

IOA (120 포인트) 님이 2020년 4월 14일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...