Impossible de démarrer l'activité:UnsupportedOperationException: addView(Vue, LayoutParams) n'est pas pris en charge dans AdapterView
Je veux écrire un ListView
dans le format de base, mais j'obtiens une erreur:
UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView
et:
androidview.LayoutInfalater.inflate(LayoutInflater.java: some numbers....like 720,658...so on)
Je sais que quelque chose doit être fait ici, dans la classe d'adaptateur:
public View getView(int position, View convertView, ViewGroup parent) {
//TODO Auto-generated method stub
RelativeLayout rv = new RelativeLayout(c);
TextView tv = new TextView(c);
TextView tv1 = new TextView(c);
ImageView imgv = new ImageView(c);
tv.setText(s[position]);
tv1.setText(i[position]);
imgv.setImageResource(d[position]);
rv.addView(tv);
rv.addView(tv1);
rv.addView(imgv);
return rv;
}
Que dois-je faire pour résoudre les problèmes
Le LOGCAT:
02-20 16:40:24.967: E/Trace(1715): error opening trace file: No such file or directory (2)
02-20 16:40:25.819: W/ResourceType(1715): No package identifier when getting value for resource number 0x000020d0
02-20 16:40:25.819: D/AndroidRuntime(1715): Shutting down VM
02-20 16:40:25.819: W/dalvikvm(1715): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
02-20 16:40:25.857: E/AndroidRuntime(1715): FATAL EXCEPTION: main
02-20 16:40:25.857: E/AndroidRuntime(1715): android.content.res.Resources$NotFoundException: String resource ID #0x20d0
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.content.res.Resources.getText(Resources.java:229)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.widget.TextView.setText(TextView.java:3620)
02-20 16:40:25.857: E/AndroidRuntime(1715): at com.example.systemzap2.adapt.getView(adapt.java:59)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.widget.AbsListView.obtainView(AbsListView.java:2271)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.widget.ListView.measureHeightOfChildren(ListView.java:1244)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.widget.ListView.onMeasure(ListView.java:1156)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.view.View.measure(View.java:15172)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:617)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:399)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.view.View.measure(View.java:15172)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.view.View.measure(View.java:15172)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.widget.LinearLayout.measureVertical(LinearLayout.java:833)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.view.View.measure(View.java:15172)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
02-20 16:40:25.857: E/AndroidRuntime(1715): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2148)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.view.View.measure(View.java:15172)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1850)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1102)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1275)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4214)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.view.Choreographer.doCallbacks(Choreographer.java:555)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.view.Choreographer.doFrame(Choreographer.java:525)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.os.Handler.handleCallback(Handler.java:615)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.os.Handler.dispatchMessage(Handler.java:92)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.os.Looper.loop(Looper.java:137)
02-20 16:40:25.857: E/AndroidRuntime(1715): at android.app.ActivityThread.main(ActivityThread.java:4745)
02-20 16:40:25.857: E/AndroidRuntime(1715): at java.lang.reflect.Method.invokeNative(Native Method)
02-20 16:40:25.857: E/AndroidRuntime(1715): at java.lang.reflect.Method.invoke(Method.java:511)
02-20 16:40:25.857: E/AndroidRuntime(1715): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
02-20 16:40:25.857: E/AndroidRuntime(1715): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
02-20 16:40:25.857: E/AndroidRuntime(1715): at dalvik.system.NativeStart.main(Native Method)
- Semble que vous n'êtes pas en nous montrant la partie importante de votre code. addView sur AdapterView n'est pas pris en charge, parce AdapterView est une sorte de base abstraite pour les ListView, la Galerie et ainsi de suite. Voir: lien. Peut-être que vous devriez utiliser un ListView?
- vous pouvez poster votre code complet pour cette classe d'adaptateur?
- postez votre plein logcat
- le java ou la carte de code de classe ou la 2, la disposition du code???
Vous devez vous connecter pour publier un commentaire.
Corriger votre code.
Une sous-classe de
AdapterView
comme unListView
ne peut pas avoir des enfants manuellement ajouté dans le fichier de layout ou ajoutés dans le code. Donc si vous avez cela dans l'un de vos mises en page:ne pas le faire, ce qui permettra d'appeler la
addView
méthode deListView
, en jetant l'exception. Au lieu d'utilisation:Vous aussi ne peut pas utiliser les
addView
méthodes deListView
dans le code comme ceci:Aussi, si vous utilisez le
LayoutInflater.inflate
méthode dans le code de laActivity
ou l'adaptateur(songetView
méthode), ne passe pas laListView
comme second paramètre. Par exemple, ne pas utiliser:comme dans Tamilarasi Sivaraj de la réponse que va lancer l'exception de nouveau. Au lieu d'utilisation:
Liée à l'exception que vous avez posté dans la question, il semble que vous utilisez le
setText
méthode avec unint
(l'un dess
oui
tableaux être unint
tableau). Le problème est que dans ce casTextView
vont penser que vous êtes en essayant de mettre le texte à l'aide d'une chaîne de ressource de cetteR.string.astring
. Leint
vous pass n'est pas une ressource de chaîne et une exception sera levée. Sis
oui
est unint
et que vous essayez de montrer dans leTextView
utiliser ce lieu:Remplacer votre disposition dans inflater
Si vous êtes comme moi et totalement ignoré la réponse dont j'avais besoin dans @Luksprog de réponse parce que c'est enfouie en elle, essayez d'utiliser l'ajout de la troisième paramètre de la
inflate
méthode, également mentionné ici:Ne pas utiliser
true
au lieu defalse
ou vous obtiendrez la même erreur qui vous a amené ici, parce que c'est la tentative de joindre/ajout à la mère, d'où leaddView is not supported in AdapterView
erreur.Essayer cela Comme ceci: