2011-09-17 11 views
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> 

答えて

0

あなたはonRestartを(呼び出すことによって、リストビューを更新することができます)、uは再び活動に来たときにそれが呼び出されますので、あなたは、リストビューを更新するが、あなたすることができますグループビューが閉じられたことがわかります。

関連する問題