Я пытаюсь обновить одну строку (два текстовых просмотров) в виде списка, изменив видимость второго текстового представления с «минус» на «видимый».Обновление одной строки в списке для отображения скрытого текстового поля
Вот 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"/>
Я использую arrayadapter связать данные из строки [] в ListView. Это прекрасно работает. Там, где я сталкиваюсь с проблемами, вы возвращаете изменения на экран.
Вот тестовый код, который у меня есть для моего адаптера массива, и попытка установить видимость во втором текстовом представлении одной строки.
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();
Этот код не бросает какие-либо ошибка, однако, я не получаю какое-либо обновления на ListView. Я не уверен, что я делаю неправильно, или на каком шаге, который мне не хватает, чтобы изменить видимость, сделанное для hold2, чтобы вернуться в список адаптеров/списков и обновиться на экране, в результате чего будет отображаться второй текст на этой конкретной строке.
Как только я получу эту работу, я хочу ее активировать onclick.
Любая помощь будет высоко оценена.