0

正しいgroupcursorsとchildcursorsでSimpleCursorTreeAdapter作成するために使用できます。ExpandableListView私のプログラムでは、各子に3つTextViewのが含まれています。グループを展開して子をクリックすると、カスタムダイアログを使用して3つの値がEditText表示されます。

一度に「1つ」のグループだけを開くと、プログラムは問題ありません。クリックすると正しい子の値を取得できます。しかし、同時に複数のグループを展開するとします。最新のグループの下にある最新の子のみが表示されます。

例:グループ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;
        }
        });

ありがとう !!

4

1 に答える 1

0

最後に、コードに何が起こったのかがわかりましたが、とても奇妙です。getChildrenCursor メソッドで childcursor を定義します。childcursor をインスタンス変数として定義するときに継承する必要があるため、クラス間で共有できます。とにかくJavaとAndroidが面白い。しかし、予期しない結果に行き詰まった場合は、デバッグして問題の原因を突き止める必要があります。

于 2010-11-25T23:24:09.230 に答える