android 应用中的 do-while 循环
do-while loop in android app
我即将编写我的第一个应用程序。我想使用一个 do-while 循环。我想要一个按钮从编辑文本中计算出一些东西。在那之后我想问用户他或她是否想再次计算一些东西。我认为 do-while-loop 会很棒,也是因为我的应用程序中还没有。
问题是我不确定该怎么做?我尝试这样做的方式总是说我需要删除令牌,而..也许是因为它在 if/else 指令中。
另一个问题是我不知道如何编写 while 条件。警报对话框可能吗?
我的问题是:我的 do-while 循环出了什么问题?
如果用户在更改对话框中单击确定,我需要在 while 条件下写什么来控制?
如何将“'no'”按钮添加到警报对话框?
@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();
}
}
失败的是:
令牌语法错误,错误放置的结构
感谢您的帮助!
令牌语法错误,删除这些令牌
如果用户按下类似 "no":
的东西,你需要捕捉
boolean someBool = true;
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
someBool = false;
}
});
do{
some code
}while(someBool);
如果用户按下 "no" 为 false,您可以设置一个布尔值,并在 while 条件中检查这是否仍然为真。如果现在,那么 while 循环将退出。
在此处查看有关 AlertDialog 以及如何捕获用户操作的更多信息:https://developer.android.com/guide/topics/ui/dialogs.html#DialogFragment
我即将编写我的第一个应用程序。我想使用一个 do-while 循环。我想要一个按钮从编辑文本中计算出一些东西。在那之后我想问用户他或她是否想再次计算一些东西。我认为 do-while-loop 会很棒,也是因为我的应用程序中还没有。 问题是我不确定该怎么做?我尝试这样做的方式总是说我需要删除令牌,而..也许是因为它在 if/else 指令中。 另一个问题是我不知道如何编写 while 条件。警报对话框可能吗?
我的问题是:我的 do-while 循环出了什么问题? 如果用户在更改对话框中单击确定,我需要在 while 条件下写什么来控制? 如何将“'no'”按钮添加到警报对话框?
@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();
}
}
失败的是:
令牌语法错误,错误放置的结构 感谢您的帮助!
令牌语法错误,删除这些令牌
如果用户按下类似 "no":
的东西,你需要捕捉boolean someBool = true;
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
someBool = false;
}
});
do{
some code
}while(someBool);
如果用户按下 "no" 为 false,您可以设置一个布尔值,并在 while 条件中检查这是否仍然为真。如果现在,那么 while 循环将退出。
在此处查看有关 AlertDialog 以及如何捕获用户操作的更多信息:https://developer.android.com/guide/topics/ui/dialogs.html#DialogFragment