AndroidStudio、Realm、kotlin初心者です。
AndroidStudioでレシピブックのアプリを作ろうと思い、Javaの経験が多少あったのでkotlinで開発を試みています。
Realmを使ってテーブルを作成しその中身をlistViewに表示させたいのですが、空白のまま表示されません。
AndroidStudio初心者でどんな仕組みで動いているのかイマイチよくわかっていないので探りながら開発している状態ですが行き詰まっています。
詳しい方ご教授願います。
MainActivity
kotlin
1import android.os.Bundle 2import android.support.v7.app.AppCompatActivity 3import android.widget.ListView 4import io.realm.Realm 5import io.realm.kotlin.createObject 6import io.realm.kotlin.where 7 8import java.util.* 9 10class MainActivity : AppCompatActivity() { 11 private lateinit var realm: Realm 12 13 override fun onCreate(savedInstanceState: Bundle?) { 14 realm = Realm.getDefaultInstance() 15 realm.beginTransaction() 16 realm.createObject<Recipe>().apply { 17 recipeId = UUID.randomUUID().toString() 18 recipeName = "curry" 19 } 20 realm.commitTransaction() 21 var listView: ListView? = null 22 super.onCreate(savedInstanceState) 23 setContentView(R.layout.activity_main) 24 25 val Recipe = realm.where<Recipe>().findAll() 26 listView?.adapter = RecipeAdapter(Recipe) 27 } 28 29 override fun onDestroy() { 30 super.onDestroy() 31 realm.close() 32 } 33} 34
Recipe
kotlin
1import io.realm.RealmObject 2import io.realm.annotations.PrimaryKey 3 4open class Recipe : RealmObject() { 5 @PrimaryKey 6 var recipeId: String? = null 7 var recipeName: String? = null 8 var recipeCategory: String? = null 9 var recipeHowtomake: String? = null 10 var recipeInfo: String? = null 11 var recipeNinmae: Int = 0 12 var recipePrice: Int = 0 13 var recipeMaterial: String? = null 14 15 } 16
RecipeAdapter
kotlin
1import android.view.LayoutInflater 2import android.view.View 3import android.view.ViewGroup 4import android.widget.TextView 5import io.realm.OrderedRealmCollection 6import io.realm.RealmBaseAdapter 7 8class RecipeAdapter (data: OrderedRealmCollection<Recipe>?) 9 : RealmBaseAdapter<Recipe>(data) { 10 inner class ViewHolder(cell : View) { 11 var recipeId = cell.findViewById<TextView>(android.R.id.text1) 12 var recipeName = cell.findViewById<TextView>(android.R.id.text2) 13 } 14 15 override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { 16 val view : View 17 val viewHolder : ViewHolder 18 19 when(convertView) { 20 null -> { 21 val inflater = LayoutInflater.from(parent?.context) 22 view = inflater.inflate(android.R.layout.simple_expandable_list_item_2,parent,false) 23 viewHolder = ViewHolder(view) 24 view.tag = viewHolder 25 } 26 else -> { 27 view = convertView 28 viewHolder = view.tag as ViewHolder 29 } 30 } 31 adapterData?.run { 32 val Recipe = get(position) 33 viewHolder.recipeId.text = Recipe.recipeId 34 viewHolder.recipeName.text = Recipe.recipeName 35 } 36 return view 37 } 38}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/09 02:04
2018/11/09 02:11
2018/11/09 02:39