comment mettre en œuvre ajouter un élément dans spinner adaptateur tableau de android
j'ai eu un EditText , un bouton et un compteur . Lors d'un clic sur le bouton , le compteur s'ajouter un nouvel élément avec le nom que vous avez entré dans l'EditText. Mais ici, c'est la question, ma carte.méthode add() semble ne fonctionne pas...voici mon code:
bt1 = (Button)this.findViewById(R.id.AddBtn);
et = (EditText)this.findViewById(R.id.newSpinnerItemText);
spinner = (Spinner)this.findViewById(R.id.dynamicSpinner);
adapter = ArrayAdapter.createFromResource(
this, R.array.simple_from_length, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String temp = et.getText().toString();
adapter.add(temp);
// adapter.notifyDataSetChanged();
spinner.setAdapter(adapter);
}
});
erreur de ce fichier:
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): java.lang.UnsupportedOperationException
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at java.util.AbstractList.add(AbstractList.java:410)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at java.util.AbstractList.add(AbstractList.java:432)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at android.widget.ArrayAdapter.add(ArrayAdapter.java:178)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at org.example.SpinnerKiran.SpinnerKiran$1.onClick(SpinnerKiran.java:56)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at android.view.View.performClick(View.java:2179)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at android.view.View.onTouchEvent(View.java:3828)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at android.widget.TextView.onTouchEvent(TextView.java:6291)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at android.view.View.dispatchTouchEvent(View.java:3368)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1707)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1197)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at android.app.Activity.dispatchTouchEvent(Activity.java:1993)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1691)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at android.view.ViewRoot.handleMessage(ViewRoot.java:1525)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at android.os.Handler.dispatchMessage(Handler.java:99)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at android.os.Looper.loop(Looper.java:123)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at android.app.ActivityThread.main(ActivityThread.java:3948)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at java.lang.reflect.Method.invokeNative(Native Method)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at java.lang.reflect.Method.invoke(Method.java:521)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
02-27 18:01:17.728: ERROR/AndroidRuntime(1982): at dalvik.system.NativeStart.main(Native Method)
Semblable, here
OriginalL'auteur Narasimha | 2011-02-27
Vous devez vous connecter pour publier un commentaire.
ArrayAdapter est déjà à la base de la Liste, de sorte que vous n'avez pas besoin de faire un adaptateur personnalisé juste pour utiliser la Liste. Toutefois, il utilise la Liste ou d'une matrice, il est créé avec. Il ne copie pas les éléments dans une nouvelle Liste. Si vous donner une longueur fixe de tableau, alors vous ne pouvez pas ajouter ou supprimer des membres.
Créer une Liste à passer au constructeur. Veuillez noter qu'une Liste créée à partir de Tableaux.asList() ne fonctionnera pas parce que c'est juste une représentation du tableau original.
Vous pouvez également utiliser une List<String>, et getResources.getStringArray(), ou tout ce qui est pratique.
Désolé. La liste de tableaux besoin d'une Liste d'argument, pas un tableau. Édité pour corriger.
merci u beaucoup pour votre précieuse réponse
OriginalL'auteur erichamion
Vous pouvez utiliser la méthode add comme ci-dessous..
Essayer..Il aidera u.
OriginalL'auteur sanjay
Vous aurez besoin de créer un Adaptateur personnalisé, qui sera probablement basée sur
List<String>
, et de mettre en œuvre laadd
méthode vous-même. Dans leadd
méthode, vous aurez besoin d'ajouter de l'adaptateur interne de la liste des éléments (chaînes de caractères)Le résultat de
createFromResource
est basé surCharSequence[]
, qui est retourné avec une taille fixe et n'est pas augmentée de façon dynamique.OriginalL'auteur zrgiu