Не удалось выполнить запланированный запрос на обновление записей. ClientErrorCode: 3 Android Kotlin - PullRequest
0 голосов
/ 14 мая 2018

Позвольте мне сразу перейти к сути вопроса, ошибка в logcat:

Could not complete scheduled request to refresh entries. ClientErrorCode: 3

Я проверил часть кода Realm (), и он выбрал правильные данные. По сути, приложение просто падает, когда загружает эту активность. Все, что я сейчас пытаюсь сделать, это опубликовать itemName в каждой ячейке. Если вам, ребята, нужен logcat, просто скажите, и я опубликую его. Любые другие детали, необходимые тоже.

Это код для моей Деятельности с RecyclelerView с только ImageView и TextView в каждой ячейке .:

class EssentialsActivity : AppCompatActivity() {

    var category: String? = null
    val realmtypeFunctions = RealmTypeFunctions()
    var realmResults: RealmResults<ChattRItem>? = null
    var chattRItemList = mutableListOf<ChattRItem>()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_essentials)

        //init realm
        Realm.init(this)

        category = "People"

        recyclerView_Essentials.setBackgroundColor(Color.CYAN)
        recyclerView_Essentials.layoutManager = GridLayoutManager(this, 3)
//        AsyncTask.execute {
            category?.let {
                loadFromRealm(it)
            }
//        }
        this.runOnUiThread {
            recyclerView_Essentials.adapter = EssentialsAdapter(chattRItemList)
        }
    }

    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        val inflater = menuInflater
        inflater.inflate(R.menu.categories, menu )

        return super.onCreateOptionsMenu(menu)
    }

    override fun onOptionsItemSelected(item: MenuItem?): Boolean {
        val intent: Intent?
        intent = Intent(this, AddItemActivity::class.java)
        intent.putExtra("category", category)
        startActivity(intent)


//        when (item?.itemId) {
//            R.id.essentials_menu_item -> {
//                intent = Intent(this, EssentialsActivity::class.java)
//                startActivity(intent)
//            }
//            R.id.addItem_menu_item -> {
//                intent = Intent(this, AddItemActivity::class.java)
//                startActivity(intent)
//            }
//            else -> return false
//        }

        return super.onOptionsItemSelected(item)
    }

    private fun loadFromRealm(category: String){
        val realm = Realm.getDefaultInstance()
        try {
            val query: RealmQuery<ChattRItem>? = realm.where(ChattRItem::class.java).equalTo("itemCategory", category)
            val result: RealmResults<ChattRItem>? = query?.findAll()
            result?.let {
                for (i in it) {
                    println(i.itemName)
                    chattRItemList.add(i)
                }
                println(chattRItemList.count())
            }

        } finally {
            realm.close()
        }
    }
}

class EssentialsAdapter(private val chattRItemList: List<ChattRItem>): RecyclerView.Adapter<CustomViewHolder>(){

    //realm class variable here to be displayed
    /* var essentials = array of realm essential item */
//    var essentialsActivity = EssentialsActivity()

    //number of items
    override fun getItemCount(): Int {
//        return 12 //return realm items count
        return this.chattRItemList.size
    }

    override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {

//        holder.itemView.textView_essentials_name.text = "Essentials Item"

        val chattRItem = chattRItemList.get(position)
//        holder.itemView.textView_essentials_name.text = chattRItem.itemName
        holder.bind(chattRItem)
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomViewHolder{
        // how do we create a cell view
        val layoutInflater = LayoutInflater.from(parent.context)
        val cellForRow = layoutInflater.inflate(R.layout.essentials_cells_layout, parent, false)
        return CustomViewHolder(view = cellForRow)
    }

}

class CustomViewHolder(view: View): RecyclerView.ViewHolder(view) {
    fun bind(chattRitem: ChattRItem) {
        itemView.textView_essentials_name.text = chattRitem.itemName
    }
}

1 Ответ

0 голосов
/ 23 мая 2018

Так что в основном я понял это.Это была неправильная ошибка от LogCat.Был другой набор ошибок от Logcat много строк выше этого.Ошибка в том, что список результатов был объектом @Realm.Мой recyclerView запрашивал не объект RealmClass.Поэтому мне пришлось создать похожий объект, за исключением класса RealmClass.

@RealmClass
open class ChattRItem: RealmModel {
    @PrimaryKey var itemId: String = ""
    var itemName: String = ""
    var itemCategory: String = ""
    var itemImageFileName: String = ""
    var itemAudioFileName: String = ""
}

class ChattRBoxItems(val itemId: String, val itemName: String, val itemCategory: String, val itemImageFileName: String, val itemAudioFileName: String)

, затем я сопоставил результат с этим новым классом, а затем применил его к своему recyclerView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...