Ich versuche derzeit mit AlertDialogs zu arbeiten.Wie 'Abbrechen' einer Taste drücken?
Momentan habe ich einen EditText in meinem AlertDialog und möchte die Eingabe nur auf Integer beschränken. Ich habe einen einfachen Versuchs- und Catch-Block verwendet, um zu verhindern, dass die App von NumberFormatException abstürzt.
Ich möchte jedoch einrichten, dass, wenn der Benutzer versucht, die Schaltfläche mit der falschen Eingabe zu drücken, die Eingabe nicht registriert und der Dialog nicht abgebrochen wird.
UpperLimitDialog.setPositiveButton(R.string.Positive_Button, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
int RawInput = settings.getInt("UpperLimit", 12);
try {
RawInput = Integer.parseInt(input.getText().toString());
}catch (NumberFormatException se) {
Toast.makeText(SettingsMenu.this, "Non-Integer Value, No Input", Toast.LENGTH_SHORT).show();
//Here I want the app to not register the click and prevent the dialog box from closing.
}
editor.putInt("UpperLimit", RawInput);
editor.apply();
Toast.makeText(SettingsMenu.this, "Set Upper Limit to " + RawInput, Toast.LENGTH_SHORT).show();
}
});
Mit welcher Methode kann ich das erreichen?
warum nicht Gebrauch xml Eingabetyp als Zahl verwenden, so dass Sie nicht brauchen, um zu überprüfen Dialog-Schaltfläche und dann versuchen, deaktivieren möchten für ein String-Wert –
Ich dachte, ich könnte es einfach kratzen, ohne eine benutzerdefinierte XML zu verwenden. Aber schätze ich nicht, besser zurück zur Verwendung von XMLs dann. –
es ist an Ihnen. Wenn Sie möchten, können Sie versuchen, Linos Antwort und behalten Sie den Warnungsdialog wie es ist, bis es eine Nummer Eingabe ist –