ฉันเป็นListView
ที่ที่ทุกองค์ประกอบในรายการประกอบด้วย TextView และปุ่มที่แตกต่างกันสองปุ่ม บางสิ่งเช่นนี้
ListView
--------------------
[Text]
[Button 1][Button 2]
--------------------
[Text]
[Button 1][Button 2]
--------------------
... (and so on) ...
ด้วยรหัสนี้ฉันสามารถสร้างOnItemClickListener
รายการทั้งหมด:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> list, View view, int position, long id) {
Log.i(TAG, "onListItemClick: " + position);
}
}
});
อย่างไรก็ตามฉันไม่ต้องการให้คลิกทั้งรายการ แต่จะมีเพียงสองปุ่มของแต่ละรายการเท่านั้น
ดังนั้นคำถามของฉันคือฉันจะใช้งาน onClickListener อย่างไรสำหรับปุ่มทั้งสองด้วยพารามิเตอร์ต่อไปนี้:
int button
(ปุ่มใดขององค์ประกอบที่ถูกคลิก)int position
(ซึ่งเป็นองค์ประกอบในรายการที่ปุ่มคลิกเกิดขึ้น)
อัปเดต:ฉันพบวิธีแก้ปัญหาตามที่อธิบายไว้ในคำตอบด้านล่าง ตอนนี้ฉันสามารถคลิก / แตะปุ่มผ่านหน้าจอสัมผัส อย่างไรก็ตามฉันไม่สามารถเลือกด้วยแทร็กบอลด้วยตนเอง มันก็จะเลือกรายการทั้งหมดและจากที่นั่นไปโดยตรงไปยังรายการต่อไปโดยไม่สนใจปุ่มแม้ว่าฉันชุด.setFocusable(true)
และสำหรับปุ่มในsetClickable(true)
getView()
ฉันยังเพิ่มรหัสนี้ลงในอะแดปเตอร์รายการที่กำหนดเองของฉัน:
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public boolean isEnabled(int position) {
return false;
}
ซึ่งทำให้ไม่มีรายการที่เลือกได้อีก แต่มันไม่ได้ช่วยในการเลือกปุ่มที่ซ้อนกัน
ใครมีความคิด?