0
以下のコードは完全に動作しています。ユーザーがグループをクリックして状態を変更すると、状態の変更によって画像が変更されます。 xmlファイルも下にあります。私が持っている問題は、新しいアクティビティを開始する子要素をクリックしたときですが、グループが閉じられたかのようにイメージの状態が変更されたことを確認する直前です。戻る矢印を使用すると、グループがまだ展開されていても、イメージは実際に閉じた状態に戻ります。誰もこれにどのような光を当てることができますか?クリック時に展開可能なリストビューの画像は変わりますか?
private static final int[] EMPTY_STATE_SET = {};
private static final int[] GROUP_EXPANDED_STATE_SET = {android.R.attr.state_expanded};
private static final int [] [] GROUP_STATE_SETS = {
EMPTY_STATE_SET, //0
GROUP_EXPANDED_STATE_SET //1
};
Cursor groupCursor = checkDB.rawQuery("SELECT * FROM TABLE", null);
mscta = new MySimpleCursorTreeAdapter(
this,
groupCursor,
R.layout.listGroup,
new String[] {"group"},
new int[] {R.id.group},
R.layout.listChildren,
new String[] {"child"},
new int[] {R.id.Child}) {
@Override
public View getGroupView (int groupPosition,
boolean isExpanded,
View convertView,
ViewGroup parent) {
View v = super.getGroupView(groupPosition, isExpanded, convertView, parent);
View ind = v.findViewById(R.id.explist_indicator);
if(ind != null){
ImageView indicator = (ImageView) ind;
indicator.setVisibility(View.VISIBLE);
int stateSetIndex = (isExpanded ? 1:0);
Drawable drawable = indicator.getDrawable();
drawable.setState(GROUP_STATE_SETS[stateSetIndex]);
}
return v;
}
};
XMLのexplist_indicator.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_expanded="true"
android:drawable="@drawable/minus" />
<item
android:drawable="@drawable/plus" />
</selector>