带有子项内部按钮的ExpandableListView

时间:2011-10-26 18:48:47

标签: android expandablelistview

我正在使用查询数据库的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不同。

1 个答案:

答案 0 :(得分:0)

我没有使用ExpandableListView,但是通过父级获取名称值似乎很奇怪。所有按钮的名称相同并不奇怪。 你能详细解释一下你想做什么吗?