Android, Personnalisé ListAdapter obtenir TextView-Texte
J'ai codé un Adaptateur et de l'ajouter à mon ListActivity par l'intermédiaire d'une ListView.
La raison pour laquelle j'ai écrit un Adaptateur, que j'ai dû faire quelques modifications de mise en page de la liste-entrys. Dans chaque entrée de la liste j'ai 3 TextViews.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip">
<TextView
android:id="@+id/myNr"
android:layout_width="40dip"
android:layout_height="fill_parent"
android:layout_marginRight="15dip"
android:text="id"
android:textSize="25dip"
android:background="#333333"
android:gravity="center_horizontal"/>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dip"
android:layout_weight="1"
android:layout_height="fill_parent">
<TextView
android:id="@+id/editor"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:gravity="center_vertical"
android:text="Editor: " />
<TextView
android:id="@+id/date"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:singleLine="true"
android:ellipsize="marquee"
android:text="Date: " />
</LinearLayout>
La prochaine chose que j'ai faite, a été de mettre en œuvre un "onListItemClick-Methode". Ensuite, j'ai mis en place un onListItemLongClick - Écouteur avec le code suivant:
dans le onCreate de l'Activité, j'ai ajouté:
registerForContextMenu(getListView());
puis j'ai ajouté la methode suivante:
Override
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo){
AdapterView.AdapterContextMenuInfo info;
info = (AdapterView.AdapterContextMenuInfo) menuInfo;
long id = getListAdapter().getItemId(info.position);
}
où "id" est l'index de l'élément dans la liste.
Je veux maintenant pour obtenir le Texte de la texview avec l'id="myNr de cette ListItem.
Est-il possible d'obtenir ce Texte?
OriginalL'auteur Ripei | 2009-11-12
Vous devez vous connecter pour publier un commentaire.
view
est l'élément de la liste, de sorte que vous pouvez faireOriginalL'auteur David Hedlund
il suffit de prendre la référence de l'affichage de texte si vous avez l'extension d'un BaseAdapter comme
OriginalL'auteur Subhajit banerjee
Hé les Gars j'ai trouvé un autre moyen de définir une ItemLongClickListener. Donc j'ai aussi trouvé un moyen d'obtenir le Texte dont je suis l'affichage.
OriginalL'auteur Ripei
J'ai trouvé aucune des solutions ci-dessus pour travailler. Comme un alternative vous pouvez:
OriginalL'auteur Nik NexAndrX
La meilleure solution que j'ai trouvé était :
OriginalL'auteur Malek Hijazi
Si vous êtes à la recherche pour le TextView à la position de l'élément de la personne à long pressé, vous pouvez obtenir en utilisant quelque chose comme ceci:
OriginalL'auteur Konklone
Oui j'ai aussi pensé ainsi. Mais quand j'mettre en œuvre ce que je viens d'obtenir le Texte de la première TextView dans la Liste. Cela signifie que je suis en mesure d'obtenir le texte de l'souhaité TextView mais c'est toujours le texte de la première liste d'entrée. N'est-il pas une option pour régler la longClickedList-entrée?
OriginalL'auteur Ripei
merci pour votre aide, mais j'ai peur qu'il ne marche pas encore.
si j'ajoute la ligne que vous avez suggéré, il souligne "getItemAtPosition" et dit:
--La méthode getItemAtPosition(int) n'est pas défini pour le type de Vue--
Il suggère de jeter la vue à un AdapterView, de sorte qu'il ressemble à la suivante:
Lorsque je l'exécute et faire un clic long sur la question, j'obtiens un "ClassCastException"
OriginalL'auteur Ripei
Dans cette méthode, vous obtiendrez l'élément lié à votre élément de la liste.
OriginalL'auteur Vansi
OriginalL'auteur Girish
J'avais une liste de tableaux de ArrayLists que ma source de données pour le CustomAdapter, donc j'utilise
OriginalL'auteur ThePCWizard
utilisant
HashMap
OriginalL'auteur user1609354