2012-07-23 8 views
28

Tôi đã triển khai android listview với ListActivity. Ở đây tôi có vấn đề là khi tôi nhấp vào mục danh sách, không có hành động nào được thực hiện khi màu flash cũng không đến mà là màu cam. Vì vậy, bạn có bất kỳ ý tưởng về câu trả lời này vui lòng cho câu hỏi của tôi.Nhấp chuột không hoạt động trên Listitem Listview android

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) 
{ 
    super.onListItemClick(l, v, position, id); 
    Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT) 
      .show(); 

} 

Tôi cũng đặt mã này vào ListActivity chính.

+2

Bạn có thể đăng mã, plz – Nermeen

+0

và mã bộ điều hợp danh sách – rajpara

+1

Bạn có nút nào hoặc nút ImageButton trong danh sách của bạn? –

Trả lời

107

Điều đầu tiên bạn phải lưu ý ở đây là, bất cứ khi nào có những yếu tố thể nhấp như Buttons hoặc ImageButtons hiện diện trong thành phần ListView của bạn, họ mất sự kiểm soát của nhấp chuột sự kiện. Và vì vậy, ListView của bạn sẽ không có cơ hội chấp nhận sự kiện nhấp chuột.

Điều bạn chỉ cần làm là đặt thuộc tính focusable thành false cho Button hoặc ImageButton bạn có trong ListView của mình. Nhưng họ vẫn sẽ làm việc mà không có bất kỳ vấn đề và cũng của bạn ListView của onListItemClick cũng sẽ làm việc.

Hãy thử điều này,

 <Button android:id="@+id/textsize_increaser" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@+id/back_button" 
     android:focusable="false" 
     android:text=" A + "/> 

Ở đây tôi đã thêm android:focusable="false" này và nó hoạt động tốt. thử nó.

+2

Bạn cũng nên thêm 'clickable = false' nếu bạn nghe mục chỉ nhấp vào – mente

+0

Hãy giúp tôi. Tôi đã bị mắc kẹt trong điều này trong 7 giờ qua, và đó là một câu hỏi đơn giản. http://stackoverflow.com/questions/35108940/why-cant-i-remove-an-item/35109304#35109304 –

+1

Đối với tôi, 'imageButton.setFocusable (false)' và 'imageButton.setFocusableInTouchMode (false)' ** trong bộ điều hợp ** đã giúp. Trong XML không có hiệu lực! – user2878850

9

Bạn đã thiết lập các chế độ lựa chọn ListView để SINGLE:

 listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 

Và nếu bạn có bất kỳ ImageView nhấp được hoặc TextView hoặc nút trong mục danh sách, sau đó làm cho họ không thể đặt tiêu điểm (trong lớp Adaptor của bạn):

 yourButton.setFocusable(false); 
     yourButton.setFocusableInTouchMode(false); 
+0

Xin hãy giúp tôi. Tôi đã bị mắc kẹt trong điều này trong 7 giờ qua, và đó là một câu hỏi đơn giản. http://stackoverflow.com/questions/35108940/why-cant-i-remove-an-item/35109304#35109304 –

4

Bạn đang sử dụng Bộ điều hợp tùy chỉnh? và bố trí thổi phồng bằng nút hoặc bất kỳ chế độ xem nào sẽ loại bỏ chế độ xem danh sách danh sách dưới dạng con, sau đó nó sẽ không hoạt động rõ ràng. đảm bảo đặt

android:focusable="false" 

vào chế độ xem như vậy trong tệp xml. hy vọng điều này phù hợp với bạn.

+0

Xin hãy giúp tôi. Tôi đã bị mắc kẹt trong điều này trong 7 giờ qua, và đó là một câu hỏi đơn giản. http://stackoverflow.com/questions/35108940/why-cant-i-remove-an-item/35109304#35109304 –

4

Set này trong file java listactivity bạn

listview1.setFocusable(false); 
1

Eclipse đề nghị tôi thêm textIsSelectable="true" vào TextViews của tôi trong bố cục xml được sử dụng cho chế độ xem danh sách.

Vâng, nếu bạn muốn nhấp vào các mục trong danh sách thì bạn không nên thêm các thẻ đó.

0

tham khảo bài viết này cho một giải pháp:

Click is not working on the Listitem Listview android

View v = parent.getChildAt(position); 
parent.requestChildFocus(v,view); 
v.setBackground(res.getDrawable(R.drawable."Some drawable for clicked row")); 

int count = parent.getChildCount(); 
for(int i=0; i<count; i++) 
{ 
    if(i!=position) 
    { 
    v = parent.getChildAt(i); 
    v.setBackground(res.getDrawable(R.drawable."some drawable for not clicked row)); 
    } 
} 
0
listview.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View v, int pos, 
        long id) { 
       Toast.makeText(v.getContext(), exm.get(pos).getDefinition(), 
         Toast.LENGTH_SHORT).show(); 


      } 
     }); 
0

Trên thực tế có một tham số có nghĩa là cho rằng để ngăn chặn quan điểm trẻ em khỏi bị tập trung, chỉ cần thêm những điều sau đây trong các phụ huynh bố cục:

android:descendantFocusability="blocksDescendants" 

Vì tài liệu giải thích:

Nhóm View sẽ chặn con cháu của nó không nhận được tiêu điểm.

0

hãy chắc chắn rằng bạn đang

  1. Không sử dụng Scroll View với Danh sách Xem
  2. Không sử dụng Scroll Xem trong bố cục mục hàng của bạn cho Danh sách Xem

Nếu Scroll View là hiện tại tại bất kỳ vị trí nào trên đây, hãy xóa nó

0

listItemButton.setFocusable (false); listItemButton.setFocusableInTouchMode (sai);

Đặt ở trên trong bộ chuyển đổi của bạn. Nó không hoạt động trong xml