Android ListView et ArrayAdapter/liste de tableaux
Je suis complètement nouveau pour Java/Android et je suis coincé avec les listviews.
Ce que je veux, c'est 4 lignes dans une ligne dans une listview avec différents styles de police
rowlayout.xml
<TextView
android:id="@+id/1"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/2"
android:textSize="30sp"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/3"
android:typeface="sans"
android:textSize="20sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/4"
android:typeface="sans"
android:textSize="15sp"
android:textStyle="italic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
J'ai ceci dans un fichier xml distinct
results.xml
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@id/TitleLbl" >
</Listview>
et mon adaptateur tableau ressemble à ceci
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.rowlayout, R.id.2, Array);
setListAdapter(adapter);
Ce que j'essaie de faire est d'obtenir une liste de tableaux (contenant l'ID, le nom, le prénom et numéro de téléphone) pour remplir la liste, de sorte que chaque information est sur sa propre ligne dans la ligne.
l'adaptateur tableau ci-dessus fonctionne, mais chacun des quatre informations dans leur propre ligne.
Peut aider quelqu'un?
(aussi, j'ai parcouru l'internet pour essayer de le régler cette question, mais n'arrive pas à trouver quelque chose qui m'aide)
OriginalL'auteur Krath | 2012-02-08
Vous devez vous connecter pour publier un commentaire.
Vous devrez peut-être utiliser une liste personnalisée de vue avec la coutume adaptateur tableau. Consultez cette lien par exemple.
Contenu:
Android HelloListView ( http://developer.android.com/resources/tutorials/views/hello-listview.html ) tutoriel montre comment lier une liste à un tableau d'objets string, mais vous aurez probablement dépasser que très vite. Ce post va vous montrer comment lier le contrôle ListView pour une ArrayList d'objets personnalisés, ainsi que de créer un multi-ligne ListView.
Disons que vous avez une sorte de fonctionnalités de recherche qui renvoie une liste de personnes, ainsi que des adresses et des numéros de téléphone. Nous allons pour l'affichage des données en trois formaté lignes pour chaque résultat, et de le rendre cliquable.
Tout d'abord, créer un nouveau projet Android, et de créer deux fichiers de mise en page. Main.xml sans doute déjà être créé par défaut, ainsi coller ce dans:
Ensuite, créez un fichier de mise en page appelée custom_row_view.xml. Cette disposition sera le modèle pour chaque ligne dans la liste. Vous pouvez utiliser à peu près n'importe quel type de mise en page - Relative, Table, etc., mais pour cela, nous allons simplement utiliser Linéaire:
Maintenant, ajoutez un objet appelé SearchResults. Collez ce code dans:
C'est la classe que nous allons faire du remplissage avec nos données et le chargement dans une ArrayList.
Ensuite, vous aurez besoin d'un adaptateur personnalisé. Celui-ci étend le BaseAdapter, mais vous pouvez prolonger la ArrayAdapter si vous préférez.
(Ce qui est essentiellement le même que le List14.java API démo)
Enfin, nous allons fil tout ça dans la classe principale de fichier:
Avis que nous avons d'abord obtenir une liste de tableaux de SearchResults objets (normalement, ce serait à partir d'une source de données externe...), le passer à la coutume adaptateur, puis définir un écouteur de clics. L'auditeur obtient l'élément qui a été cliqué, le convertit en arrière à un SearchResults objet, et fait tout ce qu'il doit faire.
final ListView lv1 = (ListView) findViewById(R.id.list);
que définie à null et est en train de lancer une exception NullPointerExceptionAvez-vous étendu listview? Si oui, getlistview devrait être suffisant. Mise à jour de la question avec la dernière version du code.
Je pense que j'ai - j'ai suivi l'exemple de mot pour le mot, mais ils ont remplacé les bits lorsque vous spécifiez les listview - quel code dois-je ajouter pour le modifier?
Le code Java et des fichiers xml. Même comme dans l'exemple que je voulais voir.
suis la putain de chose à travailler - le setContentView() après onCreate a été fixé à la main, plutôt que le fichier xml que je voulais... maintenant pour obtenir le listview pour afficher
OriginalL'auteur kosa