2011-07-18 8 views
1

私はListViewを持っていて、リスト項目をクリックすると別のアクティビティが開始されます。リストの背景の問題を変更する

リストアイテムをクリックすると、背景が変わり、別のアクティビティに移動し、このアクティビティを押すと、リストアイテムはその背景色を保持するはずです。もう一度別のリストをクリックすると、以前の背景色が削除され、同じことが繰り返されます。

ありがとうございます。

+0

こんにちはsujitは、私は、リストclick..andにその背景色を変更することを意味しますあなたと同じur問題と同じ私のためのソリューションを提供することができます私はあなたに大きな感謝とあなたは私の保護者(神).vv感謝電子メールID:[email protected] – SRam

+0

私はすでに以下の私の答えを追加します。 .. – Sujit

答えて

0

は私がsetItemChecked () methoodによってそれを解決し、使用をアンドロイド:=「singleChoice」choiceMode私のレイアウトxmlファイル内のリストビュー。私は、リスト内の項目をクリックする上でMyClass.this.getListView().setItemChecked(position,true);を使用し、getViewメソッドの()私はこれをやっている...私も同じ問題に直面しています

if(position == MyClass.this.getListView().getCheckedItemPosition()){ 

       holder._newsLinear.setBackgroundColor(Color.CYAN); 
      } 
      else{ 

       holder._newsLinear.setBackgroundColor(Color.BLACK); 
      } 
0

ListViewにsetItemChecked()メソッドが必要です。リスナーのonItemClick()メソッドに配置すると、これによってアイテムが「永続的にオン」になるはずです。次のアクティビティに移動するときは、ListViewのどのアイテムがクリックされたかを保存するには、onSaveInstanceState()onRestoreInstanceState()を使用する必要があります。私はあなたがListViewActivityから離れて移動するときに、Androidがクリックされたものを保持するとは思わない。

デベロッパーのウェブサイトhereの[フラグメント]セクションには、このチュートリアルがあります。

これが役に立ちます。

+0

あなたの返信ありがとう...ありがとう、しかし私はonSaveInstanceState()を使用せずにそれを解決しました。 – Sujit

0

選択したアイテムを追跡します。カスタムアダプターを使用し、getViewメソッドをオーバーライドします。このメソッドでは、ビューの位置が選択された項目であるかどうかをチェックし、それに応じてビューの背景を変更します。

+0

お返事ありがとうございます。上記の私の答えを見てください。 – Sujit

0

オーバーライド項目のクリックリスナーとやるクリックしたビューの色に変更するには、次

listView1.setOnItemClickListener(new ListView.OnItemClickListener() 
{  
    public void onItemClick(AdapterView<?> arg0, View v, int arg2, long arg3) 
    { 
     v.setBackgroundColor(Color.BLACK);     
    } 
}); 
+0

ですが、リストをスクロールすると、黒い背景がリスト項目にランダムに設定されます。 – Sujit