2011-07-25 17 views
1

hello frndsリストビューのリスト選択の背景色を変更したい場合は、リストビューで最初に選択した行が前の状態になり、現在後で上の色を変更したい場合があります、そしてあなたはハードコード「レイアウト/スタイリング」のコードを持つべきではありませんので、私は、コードであることをしないだろう、このリスト項目の背景色を変更するandroid

public void onListItemClick(ListView parent, View v, int position, long id) { 
    super.onListItemClick(parent, v, position, id); 

    //do some stuff here  

    Toast.makeText(getApplicationContext(), "You have selected"+(position+1)+"th item", Toast.LENGTH_SHORT).show(); 
} 

答えて

2

を行う方法white.soなる選択された行の背景。

代わりにスタイルを作成し、それをxmlのListViewに適用します。 ListSelector applies to the entire list

+0

はコメントされている必要がありますあなたのアダプタで、このメソッドを置きます – Nezam

1

あなたのリストビューをクリックリスナー:あなたはこのスレッドでそれを行う方法について読むことができます

yourlistView.setOnItemClickListener(new OnItemClickListener() {        
    @Override public void onItemClick(AdapterView<?> arg0, View arg1, 
             int position, long arg3) { 
     yourAdapter.toggleSelected(position); 
     yourAdapter.notifyDataSetChanged();    
    }  
}); 

次に、あなたのアダプタでArrayListを作成し、リストビューのすべての位置を保存するために、それを初期化しますアイテム:その後、

public ArrayList<Integer> selectedIds = new ArrayList<Integer>(); 
int length = yourmainarraylist.size(); 
for(int i = 0; i < length; i++){ 
    selectedIds.add(0);    
} 

背景を切り替えるにはgetViewにチェックを入れて:

これが答えではないので、

public void toggleSelected(int position) { 
    selectedIds.set(position, (selectedIds.get(position) == 0)); 
} 
関連する問題