在clickcursor中为单击的组获取正确的值

时间:2010-11-24 13:28:00

标签: android expandablelistview

我可以使用SimpleCursorTreeAdapter创建具有正确的groupcursors和childcursors的ExpandableListView。对于我的程序,每个孩子包含三个TextView个。当我展开组并单击子项时,我使用自定义对话框在EditText视图中显示三个值。

如果我一次只打开“ONE”组,程序就可以了。如果点击,我可以获得正确的子值。但如果我同时扩展几个小组。它只显示最新组的最新儿童。

例如:A组有3个项目,B组有5个项目,C组有2个项目。首先我点击A组下的孩子,没问题,然后B组下的孩子没问题,但是如果我回去点击A组下的孩子,它仍会显示B组下的孩子。我不知道怎么能显示正确的儿童。如果我用Toast来显示,所有孩子都是正确的,那么奇怪。我可以用这种方法做什么?

epView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() 
        {
            @Override
            public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long row) 
            { 
             return false;  
            }
            });

        epView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
        @Override
        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) 
        {

         int tempid = childcursor.getInt(0);
         String temp1 = childcursor.getString(1);
            String temp2 = childcursor.getString(2);
            String temp3 = childcursor.getString(3);
            CustomDialog custom = new CustomDialog(ListCateActivity.this,catecursor,childcursor,temp1,temp2,temp3,tempid);
            custom.setTitle("Record Information");
            custom.show();

            Toast.makeText(ListCateActivity.this, "Group:"+String.valueOf(groupPosition).toString()+" Child: "+String.valueOf(childPosition).toString()+temp1+" "+temp2+" "+temp3, Toast.LENGTH_SHORT).show();
            return true;
        }
        });

谢谢!!

1 个答案:

答案 0 :(得分:0)

最后我知道我的代码现在发生了什么,但它太奇怪了。我在getChildrenCursor方法中定义了childcursor。它应该被继承,因为我将childcursor定义为实例变量,因此它可以在类之间共享。无论如何,Java和Android很有趣。但是当你遇到意想不到的结果时,你需要调试以找出问题所在。