Как развернуть и свернуть элемент в списке

Я довольно новичок в андроиде. Я хочу реализовать представление списка. Он содержит некоторые элементы списка, и когда их нажимают, они должны расширяться, показывая больше информации. Но я не могу найти способ сделать это

Вот мой activity_main.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/listview1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:clickable="True" android:layout_alignParentTop="true" android:divider="#000" android:dividerHeight="0.5dp" android:padding="7dp" > </ListView> </RelativeLayout> 

listview.xml

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="23dp" android:layout_marginTop="20dp" android:drawableLeft="@drawable/expand_icon" android:drawablePadding="10dp" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView1" android:layout_below="@+id/textView1" android:visibility="gone" /> </RelativeLayout> 

Я хочу заполнить textview2 чтобы показать больше информации. Ниже мой main_activity.java

 public class MainActivity extends Activity { ListView list; String[] titles; String[] desc; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Resources res = getResources(); list = (ListView) findViewById(R.id.listview1); titles = res.getStringArray(R.array.text_info); desc = res.getStringArray(R.array.text_desc); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.listview, R.id.textView1, titles); list.setAdapter(adapter); } 

strings.xml

 <string name="app_name">ListView</string> <string name="hello_world">Hello world!</string> <string-array name="text_info"> <item>Tutorial 1</item> <item>Tutorial 2</item> <item>Tutorial 3</item> <item>Tutorial 4</item> <item>Tutorial 5</item> <item>Tutorial 6</item> <item>Tutorial 7</item> </string-array> <string-array name="text_desc"> <item>Tutorial 1</item> <item>Tutorial 2</item> <item>Tutorial 3</item> <item>Tutorial 4</item> <item>Tutorial 5</item> <item>Tutorial 6</item> <item>Tutorial 7</item> </string-array> <string name="action_settings">Settings</string> 

Любые предложения о том, как это сделать?

Введите описание изображения здесь

Когда пользователь нажимает на элемент, вам нужно установить видимость второго текстового поля в View.GONE и View.VISIBLE. Сначала выполните OnItemClickListener. Использование ExpandableListView для этой простой задачи – избыток.

В обработчике OnItemClick:

  TextView textView = (TextView)arg1.findViewById(R.id.textView2); if ( textView.getVisibility() == View.GONE) { //expandedChildList.set(arg2, true); textView.setVisibility(View.VISIBLE); } else { //expandedChildList.set(arg2, false); textView.setVisibility(View.GONE); } 

Вы должны использовать ExpandableListview вместо простого ListView.

обновленный

Следуйте этому руководству, и это поможет вам https://www.youtube.com/channel/UCbP2HeYGC3kfHjHLMPplZuQ, он научит вас, как использовать ListView с помощью BaseAdapter, и это увеличит вашу уверенность в том, чтобы реализовать ExpandableListView самостоятельно.