雖然YMMV,但我認爲這是一個奇怪的困境。如何識別ListViews中的重用小部件
我使用的是一個佈局文件,它描述了ListView中的每一行/行(沒有什麼特別的)。我具有分配給每一個的ID,如:
機器人:ID = 「@ + ID/checkBox1」 機器人:ID = 「@ + ID/checkBox2」 機器人:ID =「@ + ID/checkBox3 「
機器人:ID =」 @ + ID/contactLabel」 //一個TextView
現在,這似乎並沒有什麼意義,因爲這些ID應該是唯一的,那麼什麼是第二 行的id?也就是說,如果「第1行」授予checkbox1,checkbox2,checkbox3和contactLabel的指定ID,那麼「第2行」ID將是什麼?
我很好奇,但也需要知道,因爲我想將複選框的值保存到SharedPreferences對象。
誰有關於如何解決這個問題的線索?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 更新
,我需要解決的第一件事是如何響應ListView的點擊。這是我與這一切當前難題:
的ListView不知道它被點擊,或不會告訴我
我已經添加了此事件處理程序,以我的ListActivity:
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
String item = (String) getListAdapter().getItem(position);
Toast.makeText(this, item + " selected", Toast.LENGTH_LONG).show();
}
...但它沒有被調用。我點擊顯示的聯繫人,但沒有去。
我也試着這樣說:
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(getApplicationContext(),
"Click ListItem Number " + position, Toast.LENGTH_LONG)
.show();
}
});
...仍然沒有喜悅......我把兩個「吐司」線路斷點,他們永遠不會到達。
我讀到這裏:
http://www.vogella.de/articles/AndroidListView/article.html#listsactivity_layout
...是,「如果你在你活動需要更多的只是一個ListView,你可以用你自己的佈局 ListActivity。」
......我這樣做,因爲我除了列表視圖外還添加了頁眉和頁腳。
它繼續說:「在這種情況下,您的佈局必須有一個ListView元素,android:id 屬性設置爲@android:id/list。」
所以我將此添加到我的佈局:
...但它沒有什麼區別的一種方式或其他。
謝謝;你會碰巧有一些示例代碼顯示這可用? – 2012-02-14 15:10:24
不想...但我很樂意瞭解一下您的實現,如果你有問題 – 2012-02-14 15:19:25
我「不能確定(實際上,我幾乎沒有一個線索)你是什麼意思回覆:從數據集中引用丘壑一旦一切從聯繫人已加載,有沒有辦法推斷哪個聯繫人與我的複選框相關聯? – 2012-02-16 02:46:24