Ich möchte den Wert des Elements in einem Spinner in einem AlertDialog abrufen, nachdem Sie die PositiveButton drücken. Meine Funktion:Kann Spinner nicht ausgewähltes Element in einem AlertDialog Android
public void open_and_get() {
View dialog_filtri=View.inflate(this,R.layout.finestra_filtri,null);
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("Filtra per");
builder.setView(dialog_filtri);
builder.setCancelable(true);
builder.setPositiveButton("Filtra",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//All the spinners are inside a Linear layout, so i would like to get it and slide inside his spinner child to get them parameters.
View view=(View) LayoutInflater.from(getApplicationContext()).inflate(R.layout.finestra_filtri,null);
LinearLayout l= (LinearLayout) view.findViewById(R.id.linear_con_filtri);
String[] parametri=new String[l.getChildCount()];
int i;
for(i=0;i<l.getChildCount();i++) {
if(l.getChildAt(i) instanceof Spinner) {
Spinner temp=(Spinner)l.getChildAt(i);
parametri[i]=temp.getSelectedItem().toString();
}
}
Log.d(TAG,""+parametri[0]+"\n"+parametri[1]);
}
});
builder.setNegativeButton("Cancella",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
dialog.cancel();
}
});
builder.show();
}
Das Problem ist, dass ich nur die Standardwerte des Spinners bekommen, vielleicht, weil ich nicht auf die richtigen Spinner beziehen mich aber auf einen neuen.
Ja, es ist, weil Sie ein neues Layout aufblasen. Erstellen Sie ein benutzerdefiniertes Dialogfeld und übergeben Sie das ausgewählte Element in seinem Konstruktor –