Beispiel für ein Dialogfeld zur Eingabe einer Android-Eingabeaufforderung
In diesem Tutorial werden wir das vorherige Beispiel vonAlertDialogverbessern, 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.Builderan. -
Befestigen Sie die
AlertDialog.BuilderanAlertDialog. -
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)