2013-04-02 33 views
5

Tôi đã tạo danh sách tùy chỉnhXem cho ứng dụng Android của mình và tôi gặp sự cố khi tạo onClickListeners riêng biệt cho các phần riêng biệt của mục. Mục của tôi có ảnh và văn bản. Điều tôi muốn là bắt đầu các hoạt động khác nhau tùy thuộc vào hoạt động nào đã được nhấp vào.Cách đặt onClickListener cho các phần riêng biệt của danh sách tùy chỉnhXem mục? [Android]

Phương thức onClick() đó bắt đầu một hoạt động mà không thể xác định trong phương thức getView() của lớp DataBinder của tôi. (DataBinder infalates listView của tôi với bố trí tùy chỉnh)

Bất kỳ trợ giúp nào?

Cảm ơn bạn!

Trả lời

9

Trong phương thức ListAdapter'sgetView tùy chỉnh của bạn, bạn nên thêm onClickListeners vào các chế độ xem phụ khác nhau mà bạn muốn hành động cho nhấp chuột.

Một ví dụ về cách thực hiện các phương pháp getView:

class CustomListAdapter extends ArrayAdapter<String> implements OnClickListener { 

    public CustomListAdapter(Context context, int textViewResourceId) { 
     super(context, textViewResourceId); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View v = convertView; 

     TextView tv = (TextView) v.findViewById(R.id.textView1); 
     tv.setOnClickListener(this); 

     ImageView iv = (ImageView) v.findViewById(R.id.imageView1); 
     iv.setOnClickListener(this); 

     return super.getView(position, convertView, parent); 
    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()) { 
     case R.id.textView1: 
      // Do stuff accordingly... 
      break; 
     case R.id.imageView1: 
      // Do stuff when imageView1 is clicked... 
     default: 
      break; 
     } 
    } 
} 
+0

Tôi sẽ cố gắng và lấy lại với một số phản hồi :) –

+0

Điều này làm việc :) –

1

Không thể xác định các phương pháp onClick() riêng cho ImageViewTextView trong mục danh sách của bạn. Đây chính xác là những gì bạn phải làm thay vì sử dụng trình xử lý onClick() cho ListView của mình.

Thực hiện onClick() phương pháp trong bộ điều hợp của bạn getView() cho mỗi mục.

0

Một lựa chọn sẽ bao gồm một phương pháp onClick cho các yếu tố riêng biệt. Giả sử bạn đã xây dựng hàng tùy chỉnh trong XML, thật đơn giản để thêm một phương thức trong trường onClick, đặt phần tử đó (nói, một hình ảnh) để cho phép các nhấp chuột (nếu nó chưa được) và xác định phương thức trong lớp của bạn . Sau đó, nếu hàng hàng được nhấp, thì trình xử lý nhấp chuột trong danh sách xem sẽ kích hoạt, nhưng nếu phần tử được nhấp (hình ảnh) thì phương thức onClick của chính nó sẽ bị kích hoạt.

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