#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>