Как достичь ресурсов внутри метода в классе RecyclerView - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть функция "insert_data ()" в одном классе с классом адаптера RecyleView.С помощью этого метода я буду заполнять массив.

Этот метод работает после нажатия «setOnClickListener».

Так что коды методов onBindViewHolder приведены ниже,

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

        holder.itemView.txt_ads.text = category[position]


        holder.itemView.setOnClickListener(){


            if (holder.itemView.txt_ads.text.contains("Estate")){

                var arrayID = holder.itemView.resources.getIdentifier("EstateCategory","array", holder.itemView.context.packageName )
                var category_arraylist = ArrayList<String>(9)

                i**nsert_data(category_arraylist,arrayID)**

                var mylinearlayout = LinearLayoutManager(holder.itemView.context,LinearLayoutManager.VERTICAL, false)
                holder.itemView.myAdsRecycleView.layoutManager = mylinearlayout

                var myadapter = adsRecyleAdapter(category_arraylist)
                holder.itemView.myAdsRecycleView.adapter = myadapter
            }
        }
    }

иНиже приведены коды метода "insert_data ()",

fun insert_data(categoryArraylist: ArrayList<String>,arrayID:Int) {

    var obje = AppCompatActivity()

    var Category = obje.resources.getStringArray(R.array.EstateCategory)

    for (i in 0..obje.resources.getStringArray(R.array.realEstateCategory).size -1 ){

        categoryArraylist.add(Category[i])
    }
}

. В этом методе я не могу добраться до "ресурсов".Чтобы решить эту проблему, я создал объект из класса AppCombatActivity.Но это выдает ошибку, как показано ниже в строке «var obje = AppCompatActivity ()».

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference

Как мне получить доступ к ресурсам с помощью этого метода?«this» или «context» не работает.

1 Ответ

1 голос
/ 19 сентября 2019

Передайте itemView в метод insertData и вызовите ресурсы так же, как вы вызываете их в других местах

insertData(itemView: View) {// along with your other parameters

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