2009-12-01 3 views
2

Problème lors du chargement d'un tableau dans un spinner situé sur une vue différente. Le tableau est défini correctement dans arrays.xml avec un nom de beerstyles. Le beerstylespinner est défini comme l'id d'un spinner dans carbonationcalculator_view.xml. Cela fonctionne lorsque le code est dans la classe java principale mais pas dans la classe carbonationcalculator supplémentaire. Tout fonctionne à l'exception du spinner qui n'est pas rempli avec le tableau.Utilisation d'un spinner sur une autre vue avec une classe différente définie (Android)

Voici le code:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.carbonationcalculator_view); 

    Spinner s = (Spinner) findViewById(R.id.beerstylespinner); 

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, R.array.beerstyles, R.layout.carbonationcalculator_view); 

    adapter.setDropDownViewResource(R.layout.carbonationcalculator_view); 

    s.setAdapter(adapter); 
} 

Répondre

1

Je ne suis pas sûr que cela va résoudre le problème, mais il semble y avoir une certaine confusion sur ce que la mise en page à définir pour la liste déroulante des ressources de l'adaptateur. setContentView() doit être utilisé pour la vue que vous souhaitez définir pour l'activité; cependant, la ressource déroulante doit être ce à quoi vous voulez que chaque ligne ressemble. Vous devez utiliser quelque chose comme android.R.layout.simple_list_item_1. Vous pouvez émuler la démo List1.java, mais au lieu de leur constructeur que vous utilisez:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
     this, R.array.beerstyles, android.R.layout.simple_list_item_1); 

En outre, vous n'avez pas besoin d'appeler ArrayAdapter.setDropDownViewResource() après avoir utilisé ArrayAdapter.createFromResource() - le troisième paramètre est la liste déroulante des ressources de la vue.

+0

Merci pour votre réponse rapide. J'ai essayé de faire cela et le spinner n'est toujours pas lié à mon tableau. Si j'utilise le même code dans ma classe principale, cela fonctionne parfaitement. Y at-il quelque chose que je devrais faire pour gérer ces contrôles d'une autre vue et d'une autre classe? En note, sans \t adapter.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item); rien n'apparaît dans la liste déroulante du spinner. Merci pour toute aide avec ceci. – TSDEV

+0

C'est ce qui se passe lorsque vous essayez de construire des applications Android sans comprendre complètement la langue! J'ai réalisé ce que j'ai fait, j'ai plusieurs vues et un menu pour ouvrir chaque vue. Cependant, c'est tout ce que je fais, en ouvrant la vue, je n'ai pas les intentions définies. Je vais réviser et retester, j'ai le sentiment que ça va marcher. Le code censé être lié à cette vue n'a même jamais été exécuté. – TSDEV

Questions connexes