我在android系統是新科特林發展。這裏我試圖從它的內部類訪問一個類中定義的變量,如下所示。無法從內部類訪問的變量:科特林的Android
class MainActivity : AppCompatActivity() {
var frags: MutableList<Fragment> = mutableListOf()
//.............onCreate and other methods ....
internal class CustAdapter(var arrayList: ArrayList<NavigationData>) : RecyclerView.Adapter<CustAdapter.MyViewHolder>() {
override fun onBindViewHolder(holder: MyViewHolder?, position: Int) {
holder!!.bindItems(arrayList[position])
}
override fun getItemCount(): Int {
return arrayList.size
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustAdapter.MyViewHolder {
val v = LayoutInflater.from(parent.context).inflate(R.layout.navigation_item, parent, false)
return MyViewHolder(v)
}
class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bindItems(data: NavigationData) {
itemView.setOnClickListener {
frags.add(BoardFrag()) ///// here i'm getting error "unresolved symbol"
}
}
}
}
}
裏面的內部類MyViewHolder
它不允許我訪問任何外部變量的變量。
即使我無法訪問從 import kotlinx.android.synthetic.main.activity_main.*
進口內內類方法視圖ID。
我能夠訪問的變量以這樣的方式在java
但我已經在計算器讀了很多問題,但我沒有得到答案。
使用內部,而不是內部=) –