Android - Dynamique Spinner
J'ai un Jeu qui déclenche 1 de Dialogue, d'ici une deuxième boîte de Dialogue est déclenchée.
Dans cette seconde boîte de dialogue, j'ai 2 boutons et 1 fileur. La question que je vais avoir est d'obtenir un spinner apparaissent au sein de mon point de vue, avec dyamic de données.
Essentiellement, j'ai besoin de spinner à contextuel lorsque vous cliquez sur le bouton et la liste de toutes les données pertinentes. J'ai 3 différents ArrayLists (Chaîne de 1 et de 2 entiers), qui détiennent sepearte informations qui devront être ajoutées dynamiquement à chaque spinner choix comme par exemple
pt1 - ArrayLists1
ArrayLists2
ArrayLists3
pt2 - ArrayLists1
ArrayLists2
ArrayLists3
Spinner XML de mise en page de code:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<Button android:text="@string/attack"
android:id="@+id/Attack"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button android:text="@string/useitem"
android:id="@+id/UseItemBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Spinner android:text="@string/useitem"
android:id="@+id/UseItemSpin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
<Button android:text="@string/equipweapon"
android:id="@+id/EquipWeapon"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
Voici le code que j'utilise actuellement pour déclencher le clic de la touche de navigation (le journal ici est déclenché):
import android.widget.AdapterView.OnItemSelectedListener;
@Override
public void onClick(View clicked)
{
if(clicked.getId() == R.id.UseItemBtn)
{
Spinner spinner = (Spinner) findViewById(R.id.UseItemSpin);
ArrayList<String> arrayList1 = new ArrayList<String>();
arrayList1.add("test item the first one");
arrayList1.add("really long list item - section 2 goes here - finally section 3");
ArrayAdapter<String> adp = new ArrayAdapter<String> (context,android.R.layout.simple_spinner_dropdown_item,arrayList1);
//APP CURRENTLY CRASHING HERE
spinner.setAdapter(adp);
//Set listener Called when the item is selected in spinner
spinner.setOnItemSelectedListener(new OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> parent, View view, int position, long arg3)
{
String city = "The city is " + parent.getItemAtPosition(position).toString();
Toast.makeText(parent.getContext(), city, Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView<?> arg0)
{
//TODO Auto-generated method stub
}
});
}
BattleRun.show();
}
Comment puis-je ajouter de la dynamique spinner sur ce clic. Sur le dessus de cela lorsque la toupie est cliqué, idéalement, je voudrais un bouton de soumission dans le spinner afin qu'ils puissent feuilleter le choix avant de choisir (ce qui devrait être visible en tout temps).
Enfin, lorsque l'élément a été sélectionné dans la casserole et soumis la boîte de dialogue précédente est automatiquement actualisé avec les nouvelles données (ce que je peux faire assez facile).
Si vous désirez plus d'extraits de code s'il vous plaît laissez-moi savoir, de l'aide ou des conseils seraient appréciés.
Grâce,
L & L Partenaires
OriginalL'auteur LandL Partners | 2012-07-19
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser ce code pour remplir votre spinner avec le tableau de chaîne de liste
Ce code à l'intérieur de votre mise en page fichier xml -
Noter que vous n'ajoutez pas de onClick à l'intérieur du fichier xml. C'est pourquoi votre onClick fonction n'est pas appelée.
Vous pouvez également utiliser les string-array dans strings.xml fichier pour l'utilisation de la liste statique.
Hey .. la réponse était utile ... Avez-vous obtenu ce que vous avez besoin dans votre application .
Salut, Juste pour essayer de mettre en œuvre vous le correctif ci-dessus, cependant d'avoir quelques erreurs. Votre 3ème ligne de code faisant référence à la ArrayAdapter, j'obtiens une erreur disant qu'il n'est pas défini. Aussi, ne peut pas détecter setOnItemSelectedListener. Doit-je utiliser setOnItemClickListener à la place? Merci
Aussi, 1 autre chose que j'ai remarqué dans le code ci-dessus est qu'elle n'chaque définit 1 liste de tableaux de données pour aller dans le vilebrequin, alors que j'ai besoin de combiner 3 ArrayLists ensemble.
Où en êtes-vous écrire le code ci-dessus ? Idéalement, il devrait aller de l'Activité. Avez-vous ajouté Android dépendances de votre projet. Parce que vous devriez obtenir ArrayAdapter & setOnItemSelectedListener autrement.
OriginalL'auteur Sonam Daultani