J'essaie de mettre à jour une seule ligne (deux textviews) dans une liste en changeant la visibilité de la seconde vue de "gone" à "visible".Mise à jour d'une seule ligne dans une liste pour afficher une vue de texte cachée
Voici le XML pour la mise en page personnalisée:
<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"/>
J'utilise un arrayadapter pour lier les données à partir d'une chaîne [] au listview. Cela fonctionne parfaitement. Là où je rencontre des problèmes, je repousse le changement à l'écran.
Voici le code de test que j'ai pour mon adaptateur de tableau et la tentative de définir la visiblité sur la deuxième vue de texte d'une seule ligne.
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();
Ce code ne jette pas tout type d'erreur, cependant, je ne reçois aucune sorte de mise à jour sur le listview. Je ne suis pas sûr de ce que je fais de mal ou quelle étape me manque pour obtenir le changement de visibilité fait à hold2 pour être repoussé dans l'adaptateur/listview et mis à jour sur l'écran où la deuxième textview sur cette rangée particulière sera visible.
Une fois que cela fonctionne, je veux le déclencher en un clic.
Toute aide serait grandement appréciée.