2012-12-05 41 views
1

我在每一行上都有一個帶有切換按鈕的列表視圖。在滾動列表視圖時得到了刷新,因此每次滾動時切換按鈕的值也會變化?停止ListView Cell在Android中滾動時刷新?

我要保留切換按鈕值或者ON/OFF,因爲它通過滾動前用戶設置?

+0

的第一行添加一些代碼,讓我們瞭解您到目前爲止試過... – AndroidLearner

回答

0

當您切換您的按鈕,你也應該更新您的適配器的數據源。例如,如果您使用數組列表來填充適配器,則在切換按鈕時,您必須更新您的數組列表。如果你阻止行的循環也可以實現

防止列表視圖的刷新。

0

你應該設置你的ListView使用setChoiceMode()(與CHOICE_MODE_SINGLECHOICE_MODE_MULTIPLE)和使用實現可勾選,這樣ListView控件會記住這行已經切換爲您自定義行佈局。

我詳細介紹瞭如何在CheckedTextView checkmark in ListView row not showing up之前創建一個自定義勾選的佈局。 (這並不難,這方法允許你使用任何內置適配器,而無需擴展它。)

1
On Scrolling the Listview got refreshed, 

這是ListView的defualt行爲。它實際上不刷新,ListView只有在內存中可見(有一些偏移量)Views。並摧毀他人。

I want to keep that Toggle button value 

您需要跟蹤切換按鈕的狀態。 Like store Local arrayList。並更新您的適配器的getView方法中的togglebutton狀態。

-1

使用以下內容:這將照顧你的listView。

View vi = convertView; 

if (convertView == null) { 
      vi = inflater.inflate(R.layout.layoutFile, null); 
      holder = new ViewHolder(); 
      holder.layout1 = (LinearLayout) vi 
        .findViewById(R.id.layoutcourse); 
      holder.text = (TextView) vi.findViewById(R.id.text); 
      holder.status = (ImageView) vi.findViewById(R.id.img_status); 
      holder.date = (TextView) vi.findViewById(R.id.date1); 
      holder.toggleButton = (ImageView) vi 
        .findViewById(R.id.toggleButton); 
      vi.setTag(holder); 
     } else 

      holder = (ViewHolder) vi.getTag(); 
+0

我應該在哪裏添加此代碼?也請描述你在這段代碼中使用的變量。 –

+0

在getView()方法適配器,這應該是在此方法中的代碼 – Shrikant

+0

第一行:公共查看getView(最終詮釋的立場,觀點convertView,一個ViewGroup父){} – Shrikant

0

嘗試這種在getView功能

if (convertView != null) return convertView;