0
我使用SimpleAdapter的ListActivity使用simple_items_list_2佈局顯示2項目列表。一個HashMap ArrayList包含項目。在列表中選擇了錯誤的項目
該列表必須保存我從不同的UDP數據包接收到的數據。所以,我有另一個線程,收到這些數據包。從那裏,使用處理程序,它發送收到的數據,並將項目添加到列表中。
現在我正確接收數據包,甚至生成列表。但是,當我選擇說項目B時,它有時會選擇項目A.
以下是代碼片段:
在OnCreate(),
lv = getListView();
list = new ArrayList<HashMap<String, String>>();
String[] from = { "name", "address" };
int[] to = { android.R.id.text1, android.R.id.text2 };
adapter = new SimpleAdapter(getApplicationContext(), list,
android.R.layout.simple_list_item_2, from, to);
setListAdapter(adapter);
在處理程序中的代碼,它會從線程內容的消息後:
list.add(putData(scanned_name, scanned_addr));
adapter.notifyDataSetChanged();
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
TextView name_tv = (TextView) findViewById(android.R.id.text1);
TextView addr_tv = (TextView) findViewById(android.R.id.text2);
selectedName = name_tv.getText().toString();
selectedAddr = addr_tv.getText().toString();
用於放置數據的HashMap函數:
private HashMap<String, String> putData(String name, String address) {
HashMap<String, String> item = new HashMap<String, String>();
item.put("name", name);
item.put("address", address);
return item;
}
有什麼幫助嗎?
是好像從我所理解的工作,在我的代碼我得到了TextView的是列表中的第一和添加視圖使得項目的TextView的點擊? – Alabhya 2012-04-14 21:51:05
是的,當您單擊某個項目時,會引發** onItemClick **事件,並將該項目的視圖作爲參數之一傳遞。因此,使用該視圖來讀取名稱和地址 – waqaslam 2012-04-14 21:56:37