我正在使用查询数据库的SimpleCursorTreeAdapter编写ExpandableListActivity。我在非常小的孩子里面添加了一个按钮,现在我很难从列表中获取有关其按钮被单击的项目的信息。我认为我的问题是我不太清楚如何处理适配器中的数据。大多数示例都是关于listadapter,如this one。 我的适配器得到了getChildView实现,而我无法实现的是从原始游标中检索被点击组的_id。因为我不知道怎么做,所以我尝试使用以下代码从组textview中获取名称,但是在每个孩子中我点击了我得到列表中第一个项目的名称。
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
View v = super.getChildView(groupPosition, childPosition, isLastChild, convertView, parent);
v.inflate(getApplicationContext(),R.layout.productsexpchilditem, null);
Button button = (Button)v.findViewById(R.id.button1);
String name=((TextView)parent.findViewById(R.id.txt_exp_products_name_item)).getText().toString();
button.setTag(name);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(ProductsActivityExp.this, "TOAST "+v.getTag(), Toast.LENGTH_SHORT).show();
}
});
return v;
}
BTY我没有实现getGroupView方法,因为当我这样做时,我丢失了组中的所有显示文本(但不是在子组中)。我真的认为使用cursorTreeAdapter的工作得到的具体实现与listadapter不同。
答案 0 :(得分:0)
我没有使用ExpandableListView,但是通过父级获取名称值似乎很奇怪。所有按钮的名称相同并不奇怪。 你能详细解释一下你想做什么吗?