Я пытаюсь обновить одну строку (два текстовых представления) в просмотре списка, изменив видимость второго текстового представления с «ушел» на «видимый».
Вот XML для пользовательского макета:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/userlistlayout"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#000000"/>
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" android:visibility="gone"/>
Я использую массив-адаптер для привязки данных из строки [] к списку.Это работает отлично.Когда я сталкиваюсь с проблемами, я возвращаю изменения на экран.
Вот тестовый код, который у меня есть для моего адаптера массива, и попытка установить видимость для второго текстового представления одной строки.
searchResults = (ListView) findViewById(R.id.listView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.userlist, R.id.textView1,names);
searchResults.setAdapter(adapter);
//all the code above this point works perfectly to populate the listview (textview1)
with the names passed in from the names string[]
LinearLayout hold = (LinearLayout) adapter.getView(2, null, null);
TextView hold2 = (TextView) hold.findViewById(R.id.textView2);
hold2.setVisibility(TextView.VISIBLE);
adapter.notifyDataSetChanged();
searchResults.invalidateViews();
Этот код не выдает никаких ошибок, однако я не получаю никаких обновлений в виде списка.Я не уверен, что я делаю неправильно или какой шаг мне не хватает, чтобы изменения видимости, сделанные для hold2, были перенесены обратно в адаптер / просмотр списка и обновлены на экране, благодаря чему будет видно второе текстовое представление в этой конкретной строке.
Как только я получу эту работу, я хочу вызвать ее по щелчку.
Любая помощь будет высоко ценится.