Как я могу использовать два ListViews с BaseAdapter? - PullRequest
1 голос
/ 14 декабря 2010

По сути, я хочу иметь возможность использовать два ListView через мой класс BaseAdapter в одной и той же деятельности.ListViews будут отображаться бок о бок, и каждый элемент в ListView будет содержать несколько представлений (ImageView, TextView и т. Д.).

Моя основная проблема заключается в получении / отображении данных с помощью унаследованного метода getView ()от BaseAdapter.Как мне узнать, какой ListView обновляется с помощью этого метода, чтобы я знал, какой код вызывать / обновлять?Я попытался посмотреть на параметр ViewGroup в getView (), надеясь, что он привел меня к родителю ListItem, но возвращаемый идентификатор отличался от идентификатора ресурса моего ListView ... на самом деле его даже не было в моем R.Java-файл вообще:

12-14 04:44:58.613: ERROR/ParentFromGetView(312): 16908298
12-14 04:44:58.623: ERROR/MyListViewId(312): 2131165191

Я был в надежде сделать что-то вроде этого:

public View getView(int position, View convertView, ViewGroup parent) {
    if (parent.getId() == R.id.ListView1) {
        //Do stuff
    } else if (parent.getId() == R.id.ListView2) {
        //Do different stuff
    }
}

... но идентификаторы резко, как видно выше.

Заранее спасибо!

1 Ответ

0 голосов
/ 14 декабря 2010

Вы не можете разделить ListAdapter между двумя ListViews.

Хорошо, я бы хотел, чтобы они оба выполняли одно и то же действие.

Так?

В настоящее время я расширяю свою деятельность в качестве ListActivity и соответствующим образом настраиваю свой адаптер.

Это влияет только на одну из двух ListViews, в зависимости от того, какая из них имеет значение @android:id/list. Вам необходимо создать второй ListAdapter для использования со вторым ListView. Вы получаете второй ListView, звоня по номеру findViewById(), и связываете адаптер с этим ListView через setAdapter().

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