展开式列表中子级的setOnClickListener

问题描述

我正在尝试使用setonClickListener从可扩展列表视图中获取子项,以使用uri.parse重定向到我的APP中的特定应用程序,但是我找不到使用该子项的viewbyId的方法清单。我该怎么办?这是我的OnMainActivity和expandablelistadapter。 PS:我是Android Studio和Kotlin的新手,这是我的第一个项目,我已经设法从在线参考资料中使用此代码

OnMainActivity.kt

class OnMainActivity : AppCompatActivity() {

    private val header : MutableList<String> = ArrayList()
    private val body : MutableList<MutableList<String>> = ArrayList()

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

        title = "Online Classes"

        val class1: MutableList<String> = ArrayList()
        class1.add("English")
        class1.add("Nepali")
        class1.add("Math")
        class1.add("Science")
        class1.add("Social")

        val class2: MutableList<String> = ArrayList()
        class2.add("English")
        class2.add("Nepali")
        class2.add("Math")
        class2.add("Science")
        class2.add("Social")

        val class3: MutableList<String> = ArrayList()
        class3.add("English")
        class3.add("Nepali")
        class3.add("Math")
        class3.add("Science")
        class3.add("Social")

        val class4: MutableList<String> = ArrayList()
        class4.add("English")
        class4.add("Nepali")
        class4.add("Math")
        class4.add("Science")
        class4.add("Social")

        val class5: MutableList<String> = ArrayList()
        class5.add("English")
        class5.add("Nepali")
        class5.add("Math")
        class5.add("Science")
        class5.add("Social")

        val class6: MutableList<String> = ArrayList()
        class6.add("English")
        class6.add("Nepali")
        class6.add("Math")
        class6.add("Science")
        class6.add("Social")

        val class7: MutableList<String> = ArrayList()
        class7.add("English")
        class7.add("Nepali")
        class7.add("Math")
        class7.add("Science")
        class7.add("Social")

        val class8: MutableList<String> = ArrayList()
        class8.add("English")
        class8.add("Nepali")
        class8.add("Math")
        class8.add("Science")
        class8.add("Social")

        val class9: MutableList<String> = ArrayList()
        class9.add("English")
        class9.add("Nepali")
        class9.add("Math")
        class9.add("Science")
        class9.add("Social")

        val class10: MutableList<String> = ArrayList()
        class10.add("English")
        class10.add("Nepali")
        class10.add("Math")
        class10.add("Science")
        class10.add("Social")



        header.add("Class 1")
        header.add("Class 2")
        header.add("Class 3")
        header.add("Class 4")
        header.add("Class 5")
        header.add("Class 6")
        header.add("Class 7")
        header.add("Class 8")
        header.add("Class 9")
        header.add("Class 10")



        body.add(class1)
        body.add(class2)
        body.add(class3)
        body.add(class4)
        body.add(class5)
        body.add(class6)
        body.add(class7)
        body.add(class8)
        body.add(class9)
        body.add(class10)


        expandableListView.setAdapter(expandablelistadapter(this,expandableListView,header,body))

    }
}

expandablelistadapter.kt

class expandablelistadapter(var context: Context,var expandableListView : ExpandableListView,var header : MutableList<String>,var body : MutableList<MutableList<String>>) : Baseexpandablelistadapter(),Parcelable {
    constructor(parcel: Parcel) : this(
        Todo("context"),Todo("expandableListView"),Todo("header"),Todo("body")
    ) {
    }

    override fun getGroup(groupPosition: Int): String {
        return header[groupPosition]
    }

    override fun isChildSelectable(groupPosition: Int,childPosition: Int): Boolean {
        return true
    }

    override fun hasstableIds(): Boolean {
        return false
    }

    override fun getGroupView(groupPosition: Int,isExpanded: Boolean,convertView: View?,parent: ViewGroup?): View? {
        var convertView = convertView
        if(convertView == null){
            val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
            convertView = inflater.inflate(R.layout.activity_on_group,null)
        }
        val title = convertView?.findViewById<TextView>(R.id.classNo)
        title?.text = getGroup(groupPosition)
        title?.setonClickListener {
            if(expandableListView.isGroupExpanded(groupPosition))
                expandableListView.collapseGroup(groupPosition)
            else
                expandableListView.expandGroup(groupPosition)
        }
        return convertView
    }

    override fun getChildrenCount(groupPosition: Int): Int {
        return body[groupPosition].size
    }

    override fun getChild(groupPosition: Int,childPosition: Int): String {

        return body[groupPosition][childPosition]
    }

    override fun getGroupId(groupPosition: Int): Long {
        return groupPosition.toLong()
    }

    override fun getChildView(groupPosition: Int,childPosition: Int,isLastChild: Boolean,parent: ViewGroup?): View? {
        var convertView = convertView
        if(convertView == null){
            val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
            convertView = inflater.inflate(R.layout.activity_on_child,null)
        }

        val title = convertView?.findViewById<TextView>(R.id.classNo)
        title?.text = getChild(groupPosition,childPosition)
        title?.setonClickListener {
            Toast.makeText(context,getChild(groupPosition,childPosition),Toast.LENGTH_SHORT).show()
        }

        return convertView
    }


    override fun getChildId(groupPosition: Int,childPosition: Int): Long {
        return childPosition.toLong()

    }

    override fun getGroupCount(): Int {
        return header.size
    }

    override fun writetoParcel(parcel: Parcel,flags: Int) {

    }

    override fun describeContents(): Int {
        return 0
    }

    companion object CREATOR : Parcelable.Creator<expandablelistadapter> {
        override fun createFromParcel(parcel: Parcel): expandablelistadapter {
            return expandablelistadapter(parcel)
        }

        override fun newArray(size: Int): Array<expandablelistadapter?> {
            return arrayOfNulls(size)
        }
    }

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...