7
votes

Peupler Spinner Dynamiquement dans Android de Modifier le texte

J'ai un spinner dans lequel quelques valeurs sont présentes à partir de strings.xml et je souhaite peupler que Spinner de manière dynamique de l'édition de texte à l'aide de l'événement ONCliquez sur le bouton, mais cela ne fonctionne pas et je reçois la force de près à chaque fois. Toute aide sera appréciée.

05-14 01:07:19.934: ERROR/AndroidRuntime(802): FATAL EXCEPTION: main
05-14 01:07:19.934: ERROR/AndroidRuntime(802): java.lang.UnsupportedOperationException
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at java.util.AbstractList.add(AbstractList.java:411)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at java.util.AbstractList.add(AbstractList.java:432)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at android.widget.ArrayAdapter.add(ArrayAdapter.java:178)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at com.example.expense.Expense3.addNewSpinnerItem(Expense3.java:50)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at com.example.expense.Expense3$1.onClick(Expense3.java:40)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at android.view.View.performClick(View.java:2408)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at android.view.View$PerformClick.run(View.java:8816)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at android.os.Handler.handleCallback(Handler.java:587)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at android.os.Handler.dispatchMessage(Handler.java:92)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at android.os.Looper.loop(Looper.java:123)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at android.app.ActivityThread.main(ActivityThread.java:4627)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at java.lang.reflect.Method.invokeNative(Native Method)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at java.lang.reflect.Method.invoke(Method.java:521)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at dalvik.system.NativeStart.main(Native Method)


3 commentaires

Postez votre logcat pour montrer ce qui provoque la fermeture de la force.


@Mistersquonk J'ai modifié la question en ajoutant une erreur de logcat .!


Désolé, je ne peux pas résoudre ce que le problème est. Essayez peut-être de changer d'adaptateur sur ArrayAdapter et faites également du textholder dans la méthode addnewspinnerItem () une chaîne également.


3 Réponses :


7
votes

Le problème est que arrayadapter.createfromResource () code> utilise des tableaux () code> qui renvoie une liste immuable, ce qui signifie que vous ne pouvez pas ajouter d'éléments à l'adaptateur. (C'est l'opération "non prise en charge"). Essayez de créer un adaptateur vide et d'ajouter simplement les éléments à ceux-ci:

adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, 
              new ArrayList<CharSequence>());


0 commentaires

12
votes

Vous essayez d'ajouter un élément dans l'adaptateur créé à partir de ressources afin qu'il vous donnera des résultats non pris en charge forts>. Pour résoudre ce problème, vous pouvez créer une liste vierge, puis ajouter des éléments de la liste à partir de vos ressources. Pour cela, vous pouvez utiliser arranges.aslist () code> ou vous pouvez créer une boucle et ajouter des éléments individuels dans la liste et après avoir créé une liste, vous devez créer une carte à l'aide de cette liste.

maintenant Pour ajouter un élément dans l'adaptateur de la spinner, vous pouvez utiliser la méthode Adapter.add () Code> pour ajouter un élément à l'intérieur de l'adaptateur Spinner. Voici un exemple qui explique comment créer un adaptateur et ajouter un élément dans la spinner. P>

adapter.add("String to insert into spinner");


0 commentaires

2
votes

Ouais, qu'est-ce qu'ils ont dit. XXX


0 commentaires