2011-07-18 73 views
1

我有一個的ListView並點擊列表項,它開始另一個活動。更改列表背景問題

所以我的問題是,當我點擊列表項,就應該改變它的背景,並移動到另一個活動和緊迫回到這個活動列表項應該保留它改變背景顏色。再次點擊另一個列表,它應該刪除早期的背景顏色,並再次執行相同的操作。

在此先感謝。

+0

喜sujit我也面臨着同樣的問題,意味着我要改變列表click..and化背景顏色同烏爾問題u能爲我提供了相同的解決方案,我將大大心存感激的你,你將是我的保護(神).vv感謝電子郵件ID:[email protected] – SRam

+0

我已經添加了我的回答如下。 .. – Sujit

回答

0

我通過setItemChecked() methood解決它,並使用機器人:choiceMode =「singleChoice」在我的佈局xml文件中的ListView內部。我上單擊列表中的項目和上getView()我這樣做使用MyClass.this.getListView().setItemChecked(position,true); ...

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

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

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

你會想在ListView的setItemChecked()方法。如果您將它放在偵聽器中的onItemClick()方法中,這應該使您單擊「永久打開」的項目。請注意,當您導航到下一個活動時,您必須使用onSaveInstanceState()onRestoreInstanceState()來存儲ListView中的哪個項目已被點擊;我不相信Android會保留ActivityListView之間的偏離情況。

有一個在開發者網站,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