2012-01-08 31 views
12

Tôi đang sử dụng ExpandableListView và tôi không cố di chuyển hình ảnh khi mở rộng một nhóm (hình ảnh là một phần của chế độ xem nhóm).Mở chế độ xem nhóm mở rộng của ExpandableListView bằng cách sử dụng onGroupExpand

Đây là mã của tôi:

my_list_view.setOnGroupExpandListener(new OnGroupExpandListener() 
{ 
    @Override 
    public void onGroupExpand(int groupPosition) 
    { 
     Toast.makeText(getBaseContext(), "Group " + my_list_view.getGroupId(groupPosition), Toast.LENGTH_SHORT).show(); 
    } 
}); 

Về cơ bản vấn đề của tôi là: làm thế nào tôi có thể truy cập vào xem Nhóm mở rộng, khi biến duy nhất tôi có thể sử dụng là groupPosition?

Bất kỳ phản hồi nào giống như bạn tạo ra tùy chỉnh-adapter sẽ không được chấp nhận. Tôi đã thử điều đó và nó không hoạt động cho vấn đề của tôi. Những gì tôi cần là lắng nghe sự kiện onGroupExpand.

+0

Thực sự, tôi không làm thế nào để làm điều đó. Tôi đoán các chức năng tôi nên sử dụng là 'getGroupView (int groupPosition, boolean isExpanded, Xem convertView, ViewGroup cha mẹ)' nhưng điều là tôi chỉ có 'groupPosition'. Tôi đoán 'isExpanded' nên được thiết lập là true, nhưng những gì về' convertView' và 'parent' ??? – thomaus

+0

bạn có giải pháp nào không? –

+0

Kiểm tra câu trả lời này. Nó làm việc với tôi (http://stackoverflow.com/a/22912225/5621162) –

Trả lời

11

Điều cuối cùng tôi đã làm là sử dụng boolean isExpanded bạn nhận được miễn phí tại getGroupView khi bạn tạo bộ điều hợp tùy chỉnh. Tôi đã có thể làm cho mọi thứ hoạt động theo cách tôi muốn với điều đó, thay vì thực hiện nó trong hoạt động. Nếu bạn lưu ngữ cảnh mà bạn nhận được trong hàm dựng, bạn có thể sử dụng nó để lấy tài nguyên.

@Override 
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { 
    if (isExpanded) { 
    mContext.getResources().getDrawable(R.drawable.arrow) 
    doSomething(); 
    } 
    else { 
    doSomethingElse(); 
    } 
} 

Đó là dễ dàng hơn rất nhiều so với câu trả lời khác của tôi (đó là một lỗi bit anyway), vì vậy quên đi rằng một :)

+3

Cảm ơn. Tôi đã thử giải pháp này một thời gian trước và nó là lỗi + nó không có ý nghĩa để thay đổi xem nhóm trong lớp này. Nó phải nằm trong sự kiện onGroupExpand. – thomaus

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