Contacts 繼承 Activity 而非 ListActivity,無法使用 onListItemClick。
ListView listView = findViewById(R.id.mylist);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
String name = (String) parent.getItemAtPosition(position);
Intent intent = new Intent(Contacts.this, ViewContact.class);
intent.putExtra("name_clicked", name);
startActivity(intent);
}
});
AdapterView.OnItemClickListener 是標準介面parent.getItemAtPosition(position) 直接取得資料項(已是正確類型)TextView 取文字,避免佈局變更導致崩潰listView.setOnItemLongClickListener((parent, view, position, id) -> {
// 顯示上下文選單
return true; // 消費事件
});
getView 中為項目設定 OnClickListener,導致項目點擊與列表點擊衝突setOnItemSelectedListener(鍵盤/焦點選取)而非點擊