Antworten:
Könnte das nicht einfach mit einem positiven Knopf geschehen?
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Look at this dialog!")
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do things
}
});
AlertDialog alert = builder.create();
alert.show();
Sie könnten dies verwenden:
AlertDialog.Builder builder1 = new AlertDialog.Builder(this);
builder1.setTitle("Title");
builder1.setMessage("my message");
builder1.setCancelable(true);
builder1.setNeutralButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert11 = builder1.create();
alert11.show();
Ein anderer Ansatz
Builder alert = new AlertDialog.Builder(ActivityName.this);
alert.setTitle("Doctor");
alert.setMessage("message");
alert.setPositiveButton("OK",null);
alert.show();
Bonus
AlertDialog.Builder builder = new AlertDialog.Builder(YourActivityName.this);
builder.setMessage("Message dialog with three buttons");
builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do things
}
});
builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do things
}
});
builder.setNeutralButton("CANCEL", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do things
}
});
AlertDialog alert = builder.create();
alert.show();
Jetzt liegt es an Ihnen, eine, zwei oder drei Tasten zu verwenden.
Dies ist die Annäherung an den einen Liner, der sein sollte, wenn die Android-API intelligent wäre:
new AlertDialog.Builder(this)
.setMessage(msg)
.setPositiveButton("OK", null)
.show();
Für die Wiederverwendung von Code können Sie dies mit einer solchen Methode tun
public static Dialog getDialog(Context context,String title, String message, DialogType typeButtons ) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(title)
.setMessage(message)
.setCancelable(false);
if (typeButtons == DialogType.SINGLE_BUTTON) {
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do things
}
});
}
AlertDialog alert = builder.create();
return alert;
}
public enum DialogType {
SINGLE_BUTTON
}
// Andere Probleme bei der Wiederverwendung von Code wie die Verwendung von Schnittstellen zur Bereitstellung von Feedback sind ebenfalls hervorragend.
Kotlin?
val dialogBuilder = AlertDialog.Builder(this.context)
dialogBuilder.setTitle("Alert")
.setMessage(message)
.setPositiveButton("OK", null)
.create()
.show()
Es ist sehr einfach
new AlertDialog.Builder(this).setView(input).setPositiveButton("ENTER",
new DialogInterface.OnClickListener()
{ public void onClick(DialogInterface di,int id)
{
output.setText(input.getText().toString());
}
}
)
.create().show();
Wenn Sie das vollständige Programm lesen möchten, lesen Sie hier: Programm zum Eingeben von Eingaben vom Benutzer über Dialog und Ausgabe auf dem Bildschirm
Alarmdialog
Alarmdialog mit einer einzigen Taste.
Alarmdialog mit einem Symbol.
Alarmdialog mit drei Tasten.
Alarmdialog mit Auswahloption, Optionsfeld.
Warndialog mit der Multi-Choice-Option, Kontrollkästchen.
<resources>
<string name="app_name">Alert Dialog</string>
<string name="info_dialog">Info Dialog</string>
<string name="icon_dialog">Icon Dialog</string>
<string name="rate_dialog">Rate Dialog</string>
<string name="singleOption_dialog">Single Options Dialog</string>
<string name="multiOption_dialog">Multi Options Dialog</string>
<string-array name="fruit_name">
<item>Apple</item>
<item>Banana</item>
<item>Orange</item>
<item>Grapes</item>
<item>Watermelon</item>
<item>Nothing</item>
</string-array>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/info_dialog"
android:layout_width="300dp"
android:layout_height="55dp"
android:text="@string/info_dialog"
android:textAllCaps="false"
android:textColor="@color/colorPrimaryDark"
android:textSize="14sp" />
<Button
android:id="@+id/icon_dialog"
android:layout_width="300dp"
android:layout_height="55dp"
android:text="@string/icon_dialog"
android:textAllCaps="false"
android:textColor="@color/colorPrimaryDark"
android:textSize="14sp" />
<Button
android:id="@+id/rate_dialog"
android:layout_width="300dp"
android:layout_height="55dp"
android:text="@string/rate_dialog"
android:textAllCaps="false"
android:textColor="@color/colorPrimaryDark"
android:textSize="14sp" />
<Button
android:id="@+id/single_dialog"
android:layout_width="300dp"
android:layout_height="55dp"
android:text="@string/singleOption_dialog"
android:textAllCaps="false"
android:textColor="@color/colorPrimaryDark"
android:textSize="14sp" />
<Button
android:id="@+id/multi_dialog"
android:layout_width="300dp"
android:layout_height="55dp"
android:text="@string/multiOption_dialog"
android:textAllCaps="false"
android:textColor="@color/colorPrimaryDark"
android:textSize="14sp" />
</LinearLayout>
public class MainActivity extends AppCompatActivity {
String select;
String[] fruitNames;
Button infoDialog, iconDialog, rateDialog, singleOptionDialog, multiOptionDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
infoDialog = findViewById(R.id.info_dialog);
rateDialog = findViewById(R.id.rate_dialog);
iconDialog = findViewById(R.id.icon_dialog);
singleOptionDialog = findViewById(R.id.single_dialog);
multiOptionDialog = findViewById(R.id.multi_dialog);
infoDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
infoDialog();
}
});
rateDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ratingDialog();
}
});
iconDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
iconDialog();
}
});
singleOptionDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SingleSelectionDialog();
}
});
multiOptionDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MultipleSelectionDialog();
}
});
}
/*Display information dialog*/
private void infoDialog() {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
dialogBuilder.setTitle("Info");
dialogBuilder.setMessage("Some informative message for the user to do that.");
dialogBuilder.setPositiveButton("Done", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialogBuilder.create().show();
}
/*Display rating dialog*/
private void ratingDialog() {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
dialogBuilder.setTitle("Rate Us");
dialogBuilder.setMessage("If you liked it, please rate it. It will help us grow.");
dialogBuilder.setPositiveButton("Rate", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialogBuilder.setNegativeButton("Leave it", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialogBuilder.setNeutralButton("May be, later", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialogBuilder.create().show();
}
/*Dialog with icons*/
private void iconDialog() {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
dialogBuilder.setTitle("Info");
dialogBuilder.setIcon(R.mipmap.ic_launcher_round);
dialogBuilder.setMessage("You know, you could have provided some valuable message here!");
dialogBuilder.setPositiveButton("Got it", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialogBuilder.create().show();
}
/*Dialog to select single option*/
private void SingleSelectionDialog() {
fruitNames = getResources().getStringArray(R.array.fruit_name);
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(MainActivity.this);
dialogBuilder.setTitle("Which fruit you want to eat?");
dialogBuilder.setSingleChoiceItems(fruitNames, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//Toast.makeText(MainActivity.this, checkedItem, Toast.LENGTH_SHORT).show();
select = fruitNames[i];
}
});
dialogBuilder.setPositiveButton("Done", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "Item selected: " + select, Toast.LENGTH_SHORT).show();
}
});
dialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "Cancel", Toast.LENGTH_SHORT).show();
}
});
dialogBuilder.create().show();
}
/*Dialog to select multiple options*/
public void MultipleSelectionDialog() {
final String[] items = {"Apple", "Banana", "Orange", "Grapes", "Watermelon"};
final ArrayList<Integer> selectedList = new ArrayList<>();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Choice multi item fruit list");
builder.setMultiChoiceItems(items, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked) {
selectedList.add(which);
} else if (selectedList.contains(which)) {
selectedList.remove(which);
}
}
});
builder.setPositiveButton("DONE", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
ArrayList<String> selectedStrings = new ArrayList<>();
for (int j = 0; j < selectedList.size(); j++) {
selectedStrings.add(items[selectedList.get(j)]);
}
Toast.makeText(getApplicationContext(), "Items selected: " + Arrays.toString(selectedStrings.toArray()), Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
}
In Mono für Android können Sie dies tun:
var ad = new AlertDialog.Builder(this);
ad.SetTitle("Title");
ad.SetMessage("Message");
ad.SetPositiveButton("OK", delegate { ad.Dispose(); });
ad.Show();