2017-09-04 1 views
0

J'essaie de mettre un spinner dans une fenêtre de dialogue, mais cela ne fonctionne pas. le travail de compilation, mais quand j'ouvre la fenêtre de dialogue, l'application s'arrête de travailler.Android: Spinner dans un dialogue

@Override 
      public void onClick(View view) { 
       s=(Spinner) findViewById(R.id.spinnerdevise); 
       AddDialog d = new AddDialog(MainActivity.this) ; 
       d.setContentView(R.layout.dialogedit); 
       ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(d.a, 
         R.array.devise_spin, android.R.layout.simple_spinner_item); 
       adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       s.setAdapter(adapter); 
       d.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
       d.show(); 
      } 

xml de la boîte de dialogue: dialogedit.xml

... 
     <Spinner 
      android:id="@+id/spinnerdevise" 
      android:layout_width="45dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" /> 
    </LinearLayout> 
... 

String.xml

<string-array name="devise_spin"> 
     <item>azd</item> 
     <item>zdad</item> 
     <item>sdsfqf</item> 
     <item>dadf</item> 
     <item>adasd</item> 
    </string-array> 

grâce à l'aide

+0

erreur logcat show –

+0

essayer d.setContentView (R.layout.dialog); où la disposition de dialogue doit contenir spinner, –

+0

Vous n'avez pas ajouté de vue spinner dans la boîte de dialogue. Vous devez ajouter une vue. –

Répondre

0

essayer ce je pense que vous avez oublié de setContentView à votre disposition de jeu de dialogue à votre d ialog comme ci-dessous le code

@Override 
public void onClick(View view) { 
    dialog d = new dialog(MainActivity.this) ; 
    d.setContentView(R.layout.yourLayout);// set layout to your dialog 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, 
    android.R.layout.simple_spinner_dropdown_item, 
     R.array.devise_spin); 

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    s=(Spinner)d.findViewById(R.id.spinner); 
    s.setAdapter(adapter); 
    d.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
    d.show(); 
} 
+0

cela ne fonctionne pas – Raphaeld

+0

Avez-vous eu une erreur –

+0

logcat: java.lang.NullPointerException: Tentative d'invoquer la méthode virtuelle 'void android.widget.Spinner.setAdapter (android.widget.SpinnerAdapter)' sur une référence d'objet nul – Raphaeld