我正在编写一个带有查询数据库的SimpleCursorTreeAdapter的ExpandableListActivity。我在每个孩子里面添加了一个按钮,现在我很难从点击按钮的列表中获取项目的信息。我认为我的问题在于我不太了解如何在适配器中处理数据。大多数例子都是关于像this one这样的listadapter的。我的适配器实现了getChildView,但我不能实现的是从原始光标检索被单击的组的_id。因为我不知道怎么做,所以我在下面的代码中尝试从组文本视图中获取名称,但是在我单击的每个孩子中,我都会获得列表中第一个项目的名称。
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;
}
但我没有实现getGroupView方法,因为当我这样做时,我丢失了组中的所有显示文本(但不是子对象中的文本)。我真的认为与listadapter相比,使用cursorTreeAdapter的工作得到了不同的具体实现。
发布于 2011-10-26 19:00:33
我没有使用ExpandableListView,但是通过parent获取Name值似乎很奇怪。所有按钮的名称都是相同的,这并不奇怪。你能详细解释一下你想做什么吗?
https://stackoverflow.com/questions/7907427
复制相似问题