2010-12-13 29 views
0

J'ai une collection listview qui montre l'identifiant et le nom dans Android. Je suis un exemple de site de ressources this.Définir, obtenir du texte et de la valeur dans la vue listitem dans Android

Mais en réalité cet exemple seulement le nom d'affichage. Je souhaite similaire checkboxlist dans ASP.NET qui contient le texte et la valeur de la propriété. Donc le texte pour montrer le nom et l'identifiant du magasin de valeur. Lorsque l'utilisateur sélectionne un élément, je peux récupérer l'identifiant par viewtext.

Ma question est comment puis-je définir id et nom dans le même élément de texte? Je souhaite pouvoir passer l'identifiant à une autre disposition.

Je sais que possible en utilisant multi viewtext, puis mettre invisible de viewtext en utilisant la carte. Comment cela pourrait être une perte de mémoire.

Répondre

1

Je suggère une liste personnalisée. vous pouvez google pour "liste personnalisée" et trouver un tas de tutoriels sur ce sujet. simplement dit, c'est une listview qui a une ligne personnalisée que vous pouvez spécifier dans un fichier xml.

here est un tutoriel assez utile pour commencer.

Voici ce que j'ai codé, peut-être que cela vous aidera. notez que c'est un peu différent, parce que je ne définis pas un listactivity mais un widget listview. mais concernant l'élément de ligne personnalisé, cela n'aura aucune importance. Cela va créer une vue de liste et spécifier un adaptateur pour cette vue de liste.

CustomListView listview = (CustomListView) findViewById(R.id.list); 
    ArrayAdapter<String> arrayadapter = new ArrayAdapter<String(getApplicationContext(), R.layout.rowoflistview, R.id.label); 
    listview.setAdapter(arrayadapter); 

mon fichier rowoflistview.xml ressemble à ceci. il ajoute une image et un texte à chaque ligne de la liste. vous pouvez bien sûr le changer pour (surtout) ce que vous voulez.

<?xml version="1.0" encoding="UTF-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:background="@drawable/rowselector" 
> 

<ImageView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/musicicon" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:src="@drawable/musicicon" 
    android:paddingLeft="3px" 
/> 


<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/label" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="26px" 
    android:layout_marginLeft="3px" 
    android:singleLine="true" 
    android:ellipsize="end" 
    android:focusable="false" 
/> 


</LinearLayout> 

que je voulais le listview comme widget dans mon activité principale et non comme une activité en plein écran, je devais faire autre que vous quand il vient à l'événement d'écoute et cliquez sur écoute. Si vous voulez un peu plus facile, assurez-vous d'étendre la liste dans votre activité listview personnalisée et remplacez les méthodes par défaut.

espoir qui était compréhensible d'avoir une emprise sur le sujet;)