два типа строк в listview?

#android #listview #button #row

#Android #listview #кнопка #строка

Вопрос:

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

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

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

P.S: Я действительно тщательно просматриваю Интернет. Я пытаюсь сделать это в течение 2-3 дней. Но не повезло.

Спасибо.

Ответ №1:

Я думаю, вы можете объединить обе строки в один элемент списка, а затем поиграть с видимостью в зависимости от того, какой тип строки необходим. Например, используя приведенный ниже макет, вы можете установить видимость 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>