0

次のリスナーがあり、メソッドをオーバーライドしますonGroupExpand

list.setOnGroupExpandListener(new OnGroupExpandListener() { 

            @Override 
            public void onGroupExpand(int groupPosition) { 
                long groupId = adapter.getGroupId(groupPosition);
                Toast.makeText(getBaseContext(), "Group =  " + adapter.getGroupId(groupPosition), Toast.LENGTH_SHORT).show();
                Log.d(TAG, "Group expanded");
                View v = adapter.getGroupView((int) groupId, true, null, list);

                TextView txt = (TextView)v.findViewById(R.id.expandable_first_layer);
                Log.d(TAG, "txt: " + txt.getText());
                txt.setText("Tru-ru-ru");
                Log.d(TAG, "txt: " + txt.getText());
            } 
        }); 

txt.getText()初めて呼び出すと、適切なテキストが表示されます 。次に txt.getText()、LogCat で 2 秒後に新しいテキストが表示されます。

ただし、重要なのはExpandableListView、その特定のアイテムのテキストは変更されないということです。onGroupExpand で背景色を設定する場合も同様です。このバグに遭遇した人はいますか?

4

2 に答える 2

0

適切なレイアウトを膨らませて convertview を取得する必要があります。そうしないと、例外が発生します

于 2012-07-16T09:06:17.827 に答える
0

getGroupView メソッドのアダプタ クラスでこれを試して、リストの状態を確認してください。つまり、if 条件で展開または折りたたまれている場合、展開されている場合は別の色を設定できます。詳細については、以下のスニペットを確認してください。

public View getGroupView(final int groupPosition, final boolean isExpanded, 
            View convertView, ViewGroup parentView)
    {

            convertView.setBackgroundResource(R.color.red);
            if(isExpanded){

            convertView.setBackgroundResource(R.color.blue);

            }





        return convertView;
    }
于 2012-07-12T11:10:46.327 に答える