2017-06-06 9 views
-1

ユーザーがアイテムに触れるときに、展開可能なリストビューの子ビューを強調表示する必要があります。視覚的なフィードバックを提供するだけでなく、色を残しておきたい。私はこれを達成することができました:拡張可能リストビュー内の子ビューを強調表示

expandablelistview_options.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 

     @Override 
     public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { 
      v.setBackgroundColor(Color.BLUE); 
      return false; 
     } 
    }); 

しかし、私の問題は、私は同じ親ビュー内の別の子を選択した場合、以前の選択は非強調されないということです。

どうすればこの問題を解決できますか?

1)intまたはオブジェクトとしてクリックされた最新の項目の参照や位置を保存:あなたは何ができるか

答えて

1

は、このアプローチに従ってくださいです。

2)次に、あなたはこのような関数を作成し、項目をクリックの上にそれを呼び出すと位置渡すことができます。これは、参照を保存するのに役立ちますし、それが簡単に最後に処理するようになります)

int lastItem = 0; 

public void highlight(int clickedItem){ 
clickedItem.setBackground(//highlight color); 
lastItem.setBackground(//unhighlight color); 
lastItem = clickedItem; 
} 

3および現在のアイテム。これは、このようなケースを処理する際に使用するアプローチに過ぎません。あなたは同じようなアプローチを使用しなければなりません。

これが役に立ちます。

関連する問題