首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android ListView 項目點擊事件:使用 setOnItemClickListener 而非 OnListItemClick

     編輯:程式設計綜合問答

現狀

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(鍵盤/焦點選取)而非點擊
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved