2012-03-22 33 views

Trả lời

-4

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 
    } 
}); 
+3

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

2

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.

+0

Nhưng làm thế nào để bạn sử dụng Robotium để làm điều này? –

+0

Hỏi rô bốt để nhấn vào văn bản bên trong mục danh sách. –

11

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.

56
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!

+0

Làm việc tốt đẹp mahn. :) –

+3

đ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

+0

Đ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

3

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.

Các vấn đề liên quan