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