2010-08-05 28 views
6

Tôi đang phát xung quanh với ví dụ này. http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ExpandableList2.htmlCách tạo sự kiện nhấp chuột cho trẻ em trong danh sách Mở rộng

Tôi không thể tìm ra cách đính kèm người nghe vào các phần tử con để tôi có thể kích hoạt một số hành động khi người dùng chạm vào số điện thoại.

Bất kỳ mã hoặc liên kết nào sẽ được đánh giá rất nhiều.

Trả lời

20

Bạn cần phải đăng ký setOnChildClickListener

getExpandableListView().setOnChildClickListener(this); 

và thực hiện OnChildClickListener

@Override 
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, 
     int childPosition, long id) { 
    // use groupPosition and childPosition to locate the current item in the adapter 
    return true; 
} 
+0

Điều này áp dụng đối với các ví dụ tôi liên kết với? Dường như ví dụ đó không thực hiện ExpandableListView – user412164

+0

Chắc chắn nó hoạt động khi mở rộng 'ExpandableListActivity' – Pentium10

+0

Cảm ơn bạn. Bạn có biết cách nào để nhận được giá trị hoặc "nhãn" của con được nhấp vào đúng không? – user412164

1

Bạn nên ghi đè onChildClick trong phần mở rộng ExpandableListActivity của bạn.

+0

làm thế nào để tôi có được con được chọn sau khi ghi đè? – Mikey

2

Bạn nên xác định vị trí của các mục trong danh sách mở rộng như thế này

listView.setOnChildClickListener(new OnChildClickListener() 
{ 
    @Override 
    public boolean onChildClick(ExpandableListView parent, View v, int group_position, int child_position, long id) 
    { 
     if(group_position==0 && child_position==0){ 
      TryFragment secondFragment = (TryFragment) SampleActivity.this.getFragmentManager().findFragmentById(R.id.tryFragment); 
      secondFragment.getView().setVisibility(View.VISIBLE); 
     } else if(group_position==2 && child_position==2){ 
      TryFragment secondFragment = (TryFragment) SampleActivity.this.getFragmentManager().findFragmentById(R.id.tryFragment); 
      secondFragment.getView().setVisibility(View.VISIBLE); 
     } 
     return false; 
    } 
}); 
Các vấn đề liên quan