我即将编写我的第一个应用程序。我想使用do-while循环。我想要一个按钮来计算edittexts之外的东西。之后,我想问用户他或她是否想再次计算一些东西。我认为一个while-while循环会很棒,也因为我的应用程序还没有。 问题是我不知道该怎么做?我尝试这样做的方式总是说我需要删除令牌而不是..也许是因为它在if / else指令中。 另一个问题是我不知道如何编程while条件。是否可以使用警报对话框?
我的问题是:我的do-while循环有什么问题? 如果用户在altert对话框中单击了ok,我需要在while条件下编写什么来控制? 如何在警告对话框中添加“否”按钮?
@Override
public void onClick(View v) {
if(v==buttonspritkosten){
do{
//Variablen erzeugen
TextView textViewPersonenzahl;
TextView textViewStrecke;
TextView textViewVerbrauch;
TextView textViewPreis;
double berechnung;
String personenzahl;
String strecke;
String verbrauch;
String preis;
// Eingabefelder auslesen
textViewPersonenzahl = (TextView) findViewById(R.id.editpersonen);
textViewStrecke = (TextView) findViewById(R.id.editstrecke);
textViewVerbrauch = (TextView) findViewById(R.id.editverbrauch);
textViewPreis = (TextView) findViewById(R.id.editpreis);
//In strings umwandeln
personenzahl=textViewPersonenzahl.getText().toString();
strecke=textViewStrecke.getText().toString();
verbrauch=textViewVerbrauch.getText().toString();
preis=textViewPreis.getText().toString();
// Prüfen ob Felder ausgefüllt wurden mit der Methode Felderprüfung
if (Felderprüfung(personenzahl) == true && Felderprüfung(strecke) == true && Felderprüfung(verbrauch)== true && Felderprüfung(preis) == true) {
//Prüfen ob sie Strecke zu kurz ist und ggf. AltertDialog starten
if(Double.parseDouble(strecke)< 4){
String message = "Schonen Sie doch lieber die Umwelt und gehen zu Fuß! ;)";
new AlertDialog.Builder(Berechnungsactivity.this)
.setTitle("Umweltschutz")
.setMessage(message)
.setPositiveButton("ok", null )
.show();}
berechnung= ((((Double.parseDouble(strecke))/100)*(Double.parseDouble(verbrauch)))*(Double.parseDouble(preis)))/(Double.parseDouble(personenzahl));
spritkosten.setText("Die Spritkosten betragen: "+ berechnung + " € pro Person");
}else{
Toast einToast = Toast.makeText(this, "Bitte füllen Sie die Felder aus, damit Calci rechnen kann!", Toast.LENGTH_LONG);
einToast.show();
}
String message = "Möchten Sie eine weitere Berechnung durchführen?";
new AlertDialog.Builder(Berechnungsactivity.this)
.setMessage(message)
.setPositiveButton("ok", null )
.show();
}while()
}
else if (v == buttonabbrechen) {
// sollte der User Abbrechen drücken, soll die App beendet werden
finish();
}
}
失败者是:
令牌上的语法错误,错放的构造(s) 谢谢你的帮助!
令牌上的语法错误,删除这些令牌
答案 0 :(得分:1)
如果用户按下&#34; no&#34;:
之类的内容,您需要抓住boolean someBool = true;
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
someBool = false;
}
});
do{
some code
}while(someBool);
如果用户按下&#34; no&#34;你可以设置一个布尔值。如果仍然如此,则为false并在while条件内检查。如果现在,那么while循环将退出。
在此处查看AlertDialog以及如何捕获用户操作:https://developer.android.com/guide/topics/ui/dialogs.html#DialogFragment