我有兩個相同類型的ListView(A和B)(我創建的類)如何獲取ListView項目的視圖?
當我點擊A中的某個項目時,它將此對象添加到B上,如果再次單擊它,則將其刪除。 只有當選擇一個項目時,我使用view.setBackgroundColor(myColor)更改其背景。
我希望能夠刪除列表B(它的工作)的項目,但我想還重置背景色。我無法弄清楚如何得到我要刪除的這個項目的視圖。
任何想法?
我有兩個相同類型的ListView(A和B)(我創建的類)如何獲取ListView項目的視圖?
當我點擊A中的某個項目時,它將此對象添加到B上,如果再次單擊它,則將其刪除。 只有當選擇一個項目時,我使用view.setBackgroundColor(myColor)更改其背景。
我希望能夠刪除列表B(它的工作)的項目,但我想還重置背景色。我無法弄清楚如何得到我要刪除的這個項目的視圖。
任何想法?
有沒有保證任何特定的ListView項甚至會在任何給定時間的視圖。如果該項目目前不在屏幕上,則可能無法查看。由於特定項目可能沒有視圖,因此嘗試獲取項目視圖可能沒有任何意義。
除此之外,因爲ListView控件的方式創建和重用的意見,你會看到一些奇怪的,不期望的效果,如果你只是直接修改意見。當用戶滾動瀏覽列表時,變得可見的項目將不正確地以與已經落在可見部分之外的其他項目相同的背景結束。
我不知道接下來是否實現你的功能,因爲我不知道發生變化後重建的費用清單的最好辦法。這裏是我可能會這樣做(可能是天真的):
isInSecondList
。getView()
在適配器。在getView()
,將背景設置爲正常或取決於該項目的isInSecondList
的價值凸顯。notifyDataSetChanged()
。int position = 0;
listview.setItemChecked(position, true);
View wantedView = adapter.getView(position, null, listview);
YES,它的好方法android的列表視圖中的位置基本視圖謝謝你,我考10個或更多的方式最好的方式,但它的最好 – Milaaaad 2016-01-29 08:08:33
這裏是我做了什麼
private View oldSelection;
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position,
long arg3) {
highlightSelectdListItem(position);
}
public void highlightSelectdListItem(int position) {
clearPreviousSelection();
View newsItemView = mGridVIew.getChildAt(position);
oldSelection = newsItemView;
newsItemView.setBackgroundColor(Color.GRAY);
}
public void clearPreviousSelection() {
if (oldSelection != null) {
oldSelection.setBackgroundColor(Color.TRANSPARENT);
}
}
它不是因爲關閉工作-screen列表視圖,例如,當i。由觸摸第50項上項點擊位置的代碼返回** **空---> '查看newsItemView = mGridVIew.getChildAt(位置);' 其因爲該列表查看從列表中查看的項目頂部計算位置不在列表中 – Milaaaad 2016-01-29 08:00:19
如果你告訴我們,你的一些代碼(相關部分)的,它會更容易幫助你。 – Phonon 2011-03-25 13:58:41
我忘了提及我使用製表符在列表之間切換。關於代碼,沒有什麼太多的複雜,我伸出ArrayAdapters,和我的onClick使用view.setBackgroundColor(myColor) – Lucas 2011-03-28 15:25:44