Beispiel für ein Dialogfeld zur Eingabe einer Android-Eingabeaufforderung
In diesem Tutorial werden wir das vorherige Beispiel vonAlertDialog
verbessern, damit es Benutzereingaben akzeptieren kann, genau wiePromptDialog. Genauer gesagt ist dies ein Beispiel für einen benutzerdefiniertenAlertDialog
.
Siehe folgende Schritte:
-
Erstellen Sie ein Eingabeaufforderungs-Dialoglayout (XML-Datei).
-
Hängen Sie das Layout des Eingabeaufforderungsdialogs an
AlertDialog.Builder
an. -
Befestigen Sie die
AlertDialog.Builder
anAlertDialog
. -
Erledigt.
P.S This project is developed in Eclipse 3.7, and tested with Android 2.3.3.
Note
Sie könnten daran interessiert sein, diesecustom dialog example zu lesen.
1 Android-Layoutdateien
Zwei XML-Dateien, eine für den Hauptbildschirm und eine für den Aufforderungsdialog.
Datei: res / layout / main.xml
Datei: res / layout / prompts.xml
2. Aktivität
Lesen Sie den Kommentar und die Demo im nächsten Schritt, sie sollte selbsterklärend sein.
Datei: MainActivity.java
package com.example.android; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { final Context context = this; private Button button; private EditText result; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // components from main.xml button = (Button) findViewById(R.id.buttonPrompt); result = (EditText) findViewById(R.id.editTextResult); // add button listener button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // get prompts.xml view LayoutInflater li = LayoutInflater.from(context); View promptsView = li.inflate(R.layout.prompts, null); AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder( context); // set prompts.xml to alertdialog builder alertDialogBuilder.setView(promptsView); final EditText userInput = (EditText) promptsView .findViewById(R.id.editTextDialogUserInput); // set dialog message alertDialogBuilder .setCancelable(false) .setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { // get user input and set it to result // edit text result.setText(userInput.getText()); } }) .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { dialog.cancel(); } }); // create alert dialog AlertDialog alertDialog = alertDialogBuilder.create(); // show it alertDialog.show(); } }); } }
3. Demo
Starten Sie es, das Layout "main.xml
" zeigt eine Schaltfläche und einen Edittext (Ergebnis) an.
Klicken Sie auf die Schaltfläche, zeigen Sie das Layout des Eingabeaufforderungsdialogs „prompts.xml
“ an, geben Sie die Meldung „example“ ein und klicken Sie auf die Schaltfläche „OK“.
Die Benutzereingabe „example“ wird an das Layout „main.xml
“, den Edittext (Ergebnis), übergeben und angezeigt.
Quellcode herunterladen
Laden Sie es herunter -Android-Prompt-Dialog-Example.zip (16 KB)