AlertDialog mit Spinner

  • Hallo Leute!


    Ich habe derzeit eine App, wenn ich die das erste mal starte muß ich eine ID eingeben und dann kann ich mit der App weiterarbeiten.
    Das ganze habe ich jetzt über eine AlertDialog gelöst.


    Jetzt möche ich aber das in dem AlertDialog ein Auswahlfeld drinnen ist, wo alle ID´s vorgegeben sind zum Auswählen.
    Diese Werte stehen in der array.xml drinnen.


    Anbei mal der derzeitige Code denn ich habe:


    import android.app.Dialog;
    import android.content.Context;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;


    public class LoginDialog extends Dialog {


    public interface OnLoginDialogListener {
    public void onSubmit(int id);
    public void onCancel();
    }


    private OnLoginDialogListener loginListener;
    private EditText textId;
    private Button okButton;
    private Button cancelButton;


    public LoginDialog(Context context, OnLoginDialogListener okListener) {
    super(context);


    setContentView(R.layout.login);
    setTitle("Login");


    loginListener = okListener;
    textId = (EditText) findViewById(R.id.loginID);


    okButton = (Button) findViewById(R.id.loginButtonOk);
    okButton.setOnClickListener(new View.OnClickListener() {


    @Override
    public void onClick(View v) {
    loginListener.onSubmit(Integer.parseInt( textId.getText().toString() ));
    dismiss();
    }
    });



    cancelButton = (Button) findViewById(R.id.loginButtonCancel);
    cancelButton.setOnClickListener(new View.OnClickListener() {


    @Override
    public void onClick(View v) {
    loginListener.onCancel();
    dismiss();
    }
    });
    }
    }


    xml.Datei:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="300dip"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="10dip" >


    <EditText
    android:id="@+id/loginID"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="Vertreter-ID"
    android:inputType="numberSigned"
    <Spinner
    android:id="@+id/Loginspinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />


    <requestFocus />
    </EditText>


    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="20dip"
    android:layout_marginTop="20dip"
    android:orientation="horizontal" >


    <Button
    android:id="@+id/loginButtonOk"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.5"
    android:onClick="onClick"
    android:text="Ok" />


    <Button
    android:id="@+id/loginButtonCancel"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.5"
    android:onClick="onClick"
    android:text="Cancel" />
    </LinearLayout>
    </LinearLayout>


    <string-array name="Vertreter_Nr">
    <item>910</item>
    <item>911</item>
    <item>912</item>
    <item>913</item>
    <item>916</item>
    <item>919</item>
    <item>920</item>
    <item>921</item>
    <item>924</item>
    <item>925</item>
    <item>926</item>
    <item>927</item>
    <item>928</item>
    <item>929</item>
    <item>931</item>
    <item>932</item>
    <item>933</item>
    <item>934</item>
    <item>935</item>
    <item>936</item>
    </string-array>


    Was muss ich tun damit ich jetzt hier den LoginSpinner mit den werten aus dem array.xml befüllen kann anstatt dem Textfeld!


    vielen Dank im voraus!


    lg
    Jörg

  • Hi Mits,


    ich steh vielleicht gerade ein bissel aufm Schlauch aber meinst du sowas hier:


    Code
    <Spinner
    android:id="@+id/Loginspinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:entries="@array/Vertreter_Nr"
    android:prompt="Start Text"
    />


    mfg Titus

  • Hallo Titus!


    Vielen dank das wars, oft denkt man zu kompliziert!


    jetzt hab ich nur noch das Problem, wie ich den Spinner auslesen kann, komme da leider immer ein wenig mit den Datentypen durcheinander.


    Hab jetzt folgendes im Code geändert:


    private Spinner spinnerId;



    spinnerId = (Spinner) findViewById(R.id.loginID);



    public void onClick(View v) {
    //loginListener.onSubmit(Integer.parseInt( textId.getText().toString() ));


    loginListener.onSubmit(spinnerId);


    dismiss();
    }
    });


    Nur beim onClick, weis ich jetzt nich wie ich die Daten aus dem Spinner umformen ums!
    Kanns Du mir da noch mal kurz helfen?


    Vielen dank im Voraus!


    lg
    Jörg

  • Hallo!


    Habs jetzt selbst gefunden:


    @Override
    public void onClick(View v) {
    String spinnerinhalt2 = (String)spinnerId.getSelectedItem();
    loginListener.onSubmit(Integer.parseInt( spinnerinhalt2.toString() ));
    dismiss();
    }
    });


    So funktioniert es!


    Vielen Dank noch mal für die Hilfe!


    lg
    Jörg

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!