ListView OnClickListener не работает в TabActivity - PullRequest
0 голосов
/ 24 сентября 2010

У меня есть ListView и ExpandableListView внутри TabActivity. Я переопределил setOnItemClickListener для ListView. У меня есть 2 вкладки, одна использует ListView, а другая использует ExpandableListView. По какой-то причине я не могу нажать ни на один из элементов в первом ListView. Если я изменю вкладки на ExpandableListView и затем вернусь к первой вкладке, то я позволю мне нажимать на элементы как обычно. Любые идеи о том, почему это происходит. Происходит ли какая-то странная фокусировка?

У меня есть это как часть моего кода:

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.listview);

    listView = (ListView) findViewById(R.id.listview);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> av, View v, int pos, long id) {
                    onListItemClick(pos, id);
                    // return false;
                }
            });
}

Ответы [ 2 ]

1 голос
/ 19 ноября 2010

У меня сейчас та же проблема.Я опубликую решение, если найду его.

Не то решение, которое я ищу ... но вот что сработало в промежуточный период.

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    //lv is a reference to my ListView.
    lv.setSelection(position);

    return convertView;
}

Позвольте мне отметить, чтоэто не идеальное решение, это просто то, что работает последовательно на версиях Android> 1.5.(Это то, что я проверял с).

Дополнительное замечание: здесь вы также используете onItemClickListener, и это обычно реагирует только на использование трекбола или клавиш со стрелками на эмуляторе.Это может привести к тому, что вы не обработали событие onClick.Я использую типичный

0 голосов
/ 25 января 2011

У меня просто была такая же проблема. Некоторые ListViews отправляются с помощью TabActivity. Я не смог установить правильный OnItemClickListener, поэтому я подключил OnClickListener «вручную» в адаптере к convertView. Он просто присоединяет OnClickListener к каждой ячейке.

Так же, как это:

convertView.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        // What you want to do with this "item click"
        // make an Intent to start something else or whatever
    }
});

Конечно, вы делаете это в методе Adapter (например, перед возвратом convertView):

public View getView(int position, View convertView, ViewGroup parent)

Это сработало в моем случае, поэтому я надеюсь, что это поможет вам.

Удачи

...