Cách gọi ItemClickListener
theo cách lập trình? listView.performItemClick()
không hoạt động. Điều đó có thể không?Android - Cách nhấn vào mục ListView theo chương trình
Trả lời
Bạn có thể thiết lập một listener onItemClick
cho xem danh sách của bạn thông qua
listView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//here you do something
}
});
Câu hỏi là "Cách nhấn vào mục ListView theo chương trình?" và không phải về việc nhận sự kiện nhấp vào mục danh sách. – Zeba
Nếu bạn cần nó cho mục đích thử nghiệm, sau đó bạn có thể sử dụng Robotium (http://code.google.com/p/robotium/).
Bạn cũng có thể đạt được những gì bạn muốn bằng cách gọi phương thức onClick
của ClickController
với thông số chính xác.
Nhưng làm thế nào để bạn sử dụng Robotium để làm điều này? –
Hỏi rô bốt để nhấn vào văn bản bên trong mục danh sách. –
Câu trả lời là
listView1.performItemClick (listView1, 3, listView1.getItemIdAtPosition (3));
từ liên kết
Nếu bạn muốn click/tap/chọn mục danh sách thứ 3 sau đó.
listView.performItemClick(listView.getAdapter().getView(3, null, null), 3, listView.getItemIdAtPosition(3));
Điều này làm việc hoàn hảo cho tôi.
mList.performItemClick(
mList.getAdapter().getView(mActivePosition, null, null),
mActivePosition,
mList.getAdapter().getItemId(mActivePosition));
Vị trí mActivePosition là vị trí nhấp chuột của bạn!
Làm việc tốt đẹp mahn. :) –
điều này thực sự sẽ tạo ra một cái nhìn mới chỉ vì vậy performItemClick sẽ làm việc, có nó sẽ làm việc, nhưng điều này sẽ không được xem như dự định, getView trong adapter là gây hiểu lầm, nó thực sự tạo ra một khung nhìn, và listView đang sử dụng nó trong để điền vào các khung nhìn và tái chế chúng – ndori
Điều này sẽ không tạo ra một khung nhìn. 'mList.performItemClick (mList.getChildAt (mActivePosition), mActivePosition, mList.getAdapter(). getItemId (mActivePosition));' – Arst
Gán thẻ trong bộ chuyển đổi cho mỗi View
, và findviewByTag()
này làm việc cho tôi:
listView.performItemClick(listView.findViewWithTag(listView.getAdapter().getItem(selectedIndex)), selectedIndex, listView.getAdapter().getItemId(selectedIndex));
Cũng tham khảo this answer.
performItemClick được cho là hoạt động, có thể có điều gì đó sai với cách bạn sử dụng nó – njzk2
@cool dev có xem câu trả lời mới của tôi – Sameer