LinearLayout dans une ListView
Donc j'essaye de mettre un LinearLayout qui a deux TextViews à l'intérieur d'une ListView, mais je vais avoir des ennuis et le programme plante avec ce que j'ai essayé. La liste aurait juste un élément. Le xml pour ma Linéaire de la Disposition est comme suit:
<ListView>
<LinearLayout
android:orientation="vertical"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
android:drawablePadding="14dip"
android:paddingLeft="15dip"
android:paddingRight="15dip">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"/>
</LinearLayout>
</ListView>
Comment puis-je l'obtenir à l'intérieur d'une listview? Lorsque j'essaie de le mettre dans une liste, j'obtiens une erreur sur le téléphone en disant Désolé! L'application s'est arrêté de façon inattendue. Merci d'essayer de nouveau. La stacktrace est ci-dessous.
I/dalvikvm( 1692): Debugger thread not active, ignoring DDM send (t=0x41504e4d l=38)
I/dalvikvm( 1692): Debugger thread not active, ignoring DDM send (t=0x41504e4d l=56)
D/AndroidRuntime( 1692): Shutting down VM
W/dalvikvm( 1692): threadid=3: thread exiting with uncaught exception (group=0x4001b170)
E/AndroidRuntime( 1692): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime( 1692): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.acme.activeisclickable/com.acme.activeisclickable.ActiveIsClickable}: java.lang.RuntimeException: Binary XML file line #14: You must supply a layout_width attribute.
E/AndroidRuntime( 1692): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
E/AndroidRuntime( 1692): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
E/AndroidRuntime( 1692): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
E/AndroidRuntime( 1692): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
E/AndroidRuntime( 1692): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 1692): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 1692): at android.app.ActivityThread.main(ActivityThread.java:4363)
E/AndroidRuntime( 1692): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 1692): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 1692): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/AndroidRuntime( 1692): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/AndroidRuntime( 1692): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 1692): Caused by: java.lang.RuntimeException: Binary XML file line #14: You must supply a layout_width attribute.
E/AndroidRuntime( 1692): at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:438)
E/AndroidRuntime( 1692): at android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:3463)
E/AndroidRuntime( 1692): at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:3543)
E/AndroidRuntime( 1692): at android.widget.LinearLayout$LayoutParams.<init>(LinearLayout.java:1265)
E/AndroidRuntime( 1692): at android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:1191)
E/AndroidRuntime( 1692): at android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:45)
E/AndroidRuntime( 1692): at android.view.LayoutInflater.rInflate(LayoutInflater.java:620)
E/AndroidRuntime( 1692): at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
E/AndroidRuntime( 1692): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
E/AndroidRuntime( 1692): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
E/AndroidRuntime( 1692): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198)
E/AndroidRuntime( 1692): at android.app.Activity.setContentView(Activity.java:1622)
E/AndroidRuntime( 1692): at com.acme.activeisclickable.ActiveIsClickable.onCreate(ActiveIsClickable.java:35)
E/AndroidRuntime( 1692): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime( 1692): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
E/AndroidRuntime( 1692): ... 11 more
I/Process ( 1275): Sending signal. PID: 1692 SIG: 3
I/dalvikvm( 1692): threadid=7: reacting to signal 3
I/dalvikvm( 1692): Wrote stack trace to '/data/anr/traces.txt'
- quelle est l'erreur, vous êtes face à
InformationsquelleAutor Matt | 2011-07-28
Vous devez vous connecter pour publier un commentaire.
Je suppose que vous essayez de personnaliser les éléments de la liste. Vous devez écrire votre propre coutume adaptateur pour le faire. Essayez cette tutoriel ou vous pouvez vérifier ces vidéos:
DIVULGATION: je suis l'auteur de ces vidéos.
hoe to get linearlayout id in listview
?android:id
attribut.Que l'erreur est douloureux pour les yeux à déchiffrer pour être honnête. mais normalement
vous devriez être en mesure de créer une listview avec un élément enfant.
ce que je dis, c'est:
cela devrait fonctionner, depuis ListView permet uniquement d'un enfant. Mais votre LinearLayout pouvez en avoir autant que vous le souhaitez. Si il y a une erreur, il pourrait être votre layoutinflater.
vous avez
Listview
pasListView
(grand V) en vous fichier de mise en page ....E/AndroidRuntime( 1662): Caused by: java.lang.ClassNotFoundException: android.view.Listview
You must supply a layout_width attribute
... ajouter layout_width à la liste (je suis en supposant que ListView est la racine de layout.xml fichier si pas ... assurer la pleine mise en page du fichier).... mais, comme d'autres l'a écrit ... vous aide ListView dans le mauvais sens ...Vous devez utiliser la ListView avec un ListAdatper.
Créer une classe qui implémente ListAdapter, une fois que la méthode que vous devez mettre en œuvre:
Avec cette méthode vous permettra de retour de vue de chacun des éléments de votre liste, et de spécifier la mise en page que vous souhaitez.
Aussi, vous devez vous rappeler de la réutilisation de ces points de vue.
Pour plus d'informations sur la façon d'utiliser correctement les ListViews et ListAdapters:
http://dl.google.com/googleio/2010/android-world-of-listview-android.pdf
ou la vidéo
http://www.google.com/events/io/2010/sessions/world-of-listview-android.html
Cheers,
Francisco.
Vous devez décrire votre LinearLayout dans un fichier xml distinct dans la mise en page du dossier. Ensuite, lors de l'exécution d'utilisation LayoutInflater classe pour obtenir une instance de LinearLayout.
Ou vous pouvez prendre avantage de android cartes de facilement remplir des listes avec des éléments appropriés: