Android onClickListener странное поведение - PullRequest
0 голосов
/ 24 марта 2011

Я пытаюсь установить прослушиватель дочерних кликов на моем ExpandedListView, и я получаю некоторые странные результаты:

theList.setOnChildClickListener(new OnChildClickListener() {
    @Override
    public boolean onChildClick(ExpandableListView parent, View view, int groupPosition, int childPosition, long id) {
        Log.i(LOG_TAG, "clicked");

        ExpandableListAdapter adapter = parent.getExpandableListAdapter();
        View v = (View)adapter.getChild(groupPosition, childPosition);

        Toast toast = Toast.makeText(getApplicationContext(), 
                "item: " + new Integer(groupPosition).toString() + ":" + new Integer(childPosition).toString(), 
                Toast.LENGTH_SHORT);
        toast.show();

        if (!((CheckedTextView)view.findViewById(R.id.check)).isChecked()){
            ((CheckedTextView)view.findViewById(R.id.check)).setChecked(true);
        } else {
            ((CheckedTextView)view.findViewById(R.id.check)).setChecked(false);
        }

        return true;
    }
});

это вроде работает. когда я проверяю один из пунктов, однако, другой, дополнительный элемент также будет выбран, по-видимому, наугад. я не делаю это правильно?

1 Ответ

0 голосов
/ 13 апреля 2011

Решил проблему сам. я закончил расширением класса адаптера и переопределением getChildView и getGroupView и добавил список логических значений в адаптер, чтобы идти в ногу с галочками. вероятно, не самое сложное решение, но работает отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...