gpt4 book ai didi

android - 访问可扩展 ListView 中的子项目单个对象

转载 作者:行者123 更新时间:2023-11-30 02:33:44 28 4
gpt4 key购买 nike

如何访问可扩展 ListView 中任何组 View 中子项的 subview ?

selectAll.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
int gourpsSum = adapter.getGroupCount();
for(int i = 0; i < gourpsSum; i++) {
int childSum = adapter.getChildrenCount(i);
for(int k = 0; k < childSum;k++) {
boolean isLast = false;
if (k == (childSum - 1)){
isLast = true;
}

CheckBox cBox = (CheckBox) adapter.getChildView(i, k, isLast, null, null).findViewById(R.id.checkBox);
cBox.setChecked(selectAll.isChecked());
((BaseExpandableListAdapter) adapter).notifyDataSetChanged();
}

}
}
});

其中 selectAll 是可扩展 ListView 上方的另一个复选框。

最佳答案

你需要创建一个类来扩展 BaseExpandableListAdapter ,然后覆盖摘要 getChildView()方法,该方法根据groupPosition和childPosition来决定显示哪个view。也可以访问这个Expandable List View tutorial .

在教程中,它展示了如何在每个 subview 中访问 TextView 对象,如果你想访问 CheckBox,你可以做类似的事情。下面是一个示例代码:

    @Override
public View getChildView(int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {

final String childText = (String) getChild(groupPosition, childPosition);

if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.list_item, null);
}

TextView txtListChild = (TextView) convertView
.findViewById(R.id.lblListItem);
CheckBox checkboxListChild = (CheckBox) convertView
.findViewById(R.id.checkboxListItem); //assume thats the id of your checkbox object


txtListChild.setText(childText);
return convertView;
}

您还可以查看 this tutorial了解带复选框的 ExpandableListView。

关于android - 访问可扩展 ListView 中的子项目单个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26914488/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com