问题描述
是否可以在Baseexpandablelistadapter中将数据直接从getChildView()传递到getGroupView?
这是我的适配器类。我想将我从getChildView()获得的数据(val topicTitle)传递给getGroupView。如何直接在此适配器中做到这一点?
class MyAdapter internal constructor(
private val context: Context,private val chapterList: List<String>,private val topicslist: HashMap<String,List<String>>
) : Baseexpandablelistadapter() {
override fun getGroup(groupPosition: Int): Any {
return chapterList[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
val chapterTitle = getGroup(groupPosition) as String
if (convertView == null) {
val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
convertView = inflater.inflate(R.layout.listview_layout_grupna_najava_header,null)
}
val txtId = convertView!!.findViewById<TextView>(R.id.txtId)
txtId.text = chapterTitle
return convertView
}
override fun getChildrenCount(groupPosition: Int): Int {
return this.topicslist[this.chapterList[groupPosition]]!!.size
}
override fun getChild(groupPosition: Int,childPosition: Int): Any {
return this.topicslist[this.chapterList[groupPosition]]!![childPosition]
}
override fun getGroupId(groupPosition: Int): Long {
return groupPosition.toLong()
}
@RequiresApi(Build.VERSION_CODES.KITKAT)
override fun getChildView(groupPosition: Int,childPosition: Int,isLastChild: Boolean,parent: ViewGroup?): View {
var convertView = convertView
val topicTitle = getChild(groupPosition,childPosition) as String
if (convertView == null) {
val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
convertView = inflater.inflate(R.layout.listview_layout_pregled_najave_pojedinacna,null)
}
val txtAddress = convertView!!.findViewById<TextView>(R.id.txtAddress)
val txtCity = convertView!!.findViewById<TextView>(R.id.txtCity)
val txtPerson = convertView!!.findViewById<TextView>(R.id.txtPerson)
val txtStatus = convertView!!.findViewById<TextView>(R.id.txtStatus)
txtAddress.text = topicTitle.split("/")[1].trim()
txtCity.text = topicTitle.split("/")[2].trim()
txtPerson.text = topicTitle.split("/")[3].trim()
txtStatus.text = topicTitle.split("/")[5].trim()
convertView.btnDropdownMenu.setonClickListener() {
val popupMenu = PopupMenu(context,it,Gravity.START)
popupMenu.setonMenuItemClickListener { item ->
when (item.itemId) {
R.id.detalji -> {
convertView.btnDropdownMenu.context.startActivity(
Intent(convertView.btnDropdownMenu.context,Details::class.java).putExtra("Id",topicTitle.split("/")[0].trim())
)
true
}
R.id.preuzmi -> {
Toast.makeText(convertView.btnDropdownMenu.context,"PREUZMI Todo",Toast.LENGTH_SHORT).show()
true
}
R.id.obradi -> {
convertView.btnDropdownMenu.context.startActivity(
Intent(convertView.btnDropdownMenu.context,ItemDetails::class.java).putExtra("Id",topicTitle.split("/")[0].trim())
.putExtra("From","Najava")
)
true
}
R.id.oslobodi -> {
Toast.makeText(convertView.btnDropdownMenu.context,"osloBODI Todo",Toast.LENGTH_SHORT).show()
true
}
R.id.realizuj -> {
Toast.makeText(convertView.btnDropdownMenu.context,"REALIZUJ Todo",Toast.LENGTH_SHORT).show()
true
}
else -> false
}
}
popupMenu.inflate(R.menu.menu_pregled_najave)
when (topicTitle.split("/")[4].trim().toInt()) {
StatusNajaveEnum.Neobradjena.value -> {
popupMenu.menu.findItem(R.id.preuzmi).isVisible = true
popupMenu.menu.findItem(R.id.obradi).isVisible = true
popupMenu.menu.findItem(R.id.oslobodi).isVisible = false
popupMenu.menu.findItem(R.id.realizuj).isVisible = true
}
StatusNajaveEnum.Preuzeta.value -> {
popupMenu.menu.findItem(R.id.preuzmi).isVisible = false
popupMenu.menu.findItem(R.id.obradi).isVisible = true
popupMenu.menu.findItem(R.id.oslobodi).isVisible = true
popupMenu.menu.findItem(R.id.realizuj).isVisible = true
}
StatusNajaveEnum.Realizivana.value -> {
popupMenu.menu.findItem(R.id.preuzmi).isVisible = false
popupMenu.menu.findItem(R.id.obradi).isVisible = false
popupMenu.menu.findItem(R.id.oslobodi).isVisible = false
popupMenu.menu.findItem(R.id.realizuj).isVisible = false
}
StatusNajaveEnum.Stornirana.value -> {
popupMenu.menu.findItem(R.id.preuzmi).isVisible = false
popupMenu.menu.findItem(R.id.obradi).isVisible = false
popupMenu.menu.findItem(R.id.oslobodi).isVisible = false
popupMenu.menu.findItem(R.id.realizuj).isVisible = false
}
}
popupMenu.show()
}
return convertView
}
override fun getChildId(groupPosition: Int,childPosition: Int): Long {
return childPosition.toLong()
}
override fun getGroupCount(): Int {
return chapterList.size
}
}
,并且我的getGroupView中需要这个经过修改的topicList。我该怎么办?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)