два типа строки в списке просмотра? - PullRequest
2 голосов
/ 27 октября 2011

Я использую список в моей программе для Android.

У меня есть два типа строк. 1) Только один просмотр текста, и когда вы выбираете его, он открывает новое намерение. 2) 3 просмотра текста и кнопка. При нажатии на кнопку открывается новое намерение.

Как я могу их различать и как сделать такие разные вещи в одном адаптере?

П.С .: Я действительно тщательно ищу интернет. Я пытаюсь сделать это в течение 2-3 дней. Но не повезло.

Спасибо.

1 Ответ

0 голосов
/ 27 октября 2011

Я думаю, вы можете объединить обе строки в один элемент списка, а затем играть с видимостью в зависимости от того, какой тип строки необходим. Например, используя макет ниже, вы можете установить видимость на View.Gone для row1_text и View.VISIBLE для row2_text* и row2_button, если вам нужно показать элементы для типа row2. И переключаем видимость для типа row1.

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/list_item"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight">
    <TextView
        android:id="@+id/row1_text"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/row2_text1"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/row2_text2"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@id/row2_text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/row2_text3"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@id/row2_text2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/row2_button"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@id/row2_text3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</RelativeLayout>
...