Расширяемый список Android - OnClickListener - PullRequest
0 голосов
/ 03 сентября 2011

У меня проблемы с настройкой OnClickListener для перечисления элементов в моей ExpandableListActivity.Структура кода соответствует следующему примеру:

    ExpandableListAdapter mAdapter;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Assign the adapter
    mAdapter = new MyExpandableListAdapter();
    setListAdapter(mAdapter);
}

public class MyExpandableListAdapter extends BaseExpandableListAdapter {
    private String[] groups = { "foo", "bar"};
    private String[][] children = {
                {"fooA", "barA"},
        {"fooB", "barB"}
            };

    public Object getChild(int groupPosition, int childPosition) {
        return children[groupPosition][childPosition];
    }

    public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
    }

    public int getChildrenCount(int groupPosition) {
        return children[groupPosition].length;
    }

    public TextView getGenericView() {
        // Layout parameters for the ExpandableListView
        AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT, 64);

        TextView textView = new TextView(Calculations.this);
        textView.setLayoutParams(lp);
        // Center the text vertically
        textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
        // Set the text starting position
        textView.setPadding(64, 0, 0, 0);
        return textView;
    }

        public View getChildView(int groupPosition, int childPosition, boolean isLastChild,
            View convertView, ViewGroup parent) {
        TextView textView = getGenericView();
        textView.setText(getChild(groupPosition, childPosition).toString());
        textView.setPadding(98, 0, 0, 0);
        return textView;
    }

    public Object getGroup(int groupPosition) {
        return groups[groupPosition];
    }

    public int getGroupCount() {
        return groups.length;
    }

    public long getGroupId(int groupPosition) {
        return groupPosition;
    }

    public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
            ViewGroup parent) {
        TextView textView = getGenericView();
        textView.setText(getGroup(groupPosition).toString());
        return textView;
    }

    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return true;
    }

    public boolean hasStableIds() {
        return true;
    }
}

Как только я смогу настроить прослушиватель, я, скорее всего, сделаю что-то вроде этого:

// Listener
{
    switch(groupPosition) {
    case 0:
        switch(childPosition) {
        case 0:
            selected = 00;
            return true;
        }
    }
}// Close listener

Пожалуйста, сообщите мне, еслиЯ не достаточно ясен.

1 Ответ

0 голосов
/ 03 сентября 2011

Вы должны переопределить onChildClick() в своей деятельности.

boolean onChildClick (ExpandableListView parent, View v, int groupPosition, int childPosition, long id) Переопределить это для получения обратных вызовов, когда ребенок былнажал.

...