Android应用程序中的do-while循环

时间:2015-06-20 08:28:49

标签: android do-while

我即将编写我的第一个应用程序。我想使用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)   谢谢你的帮助!

令牌上的语法错误,删除这些令牌

1 个答案:

答案 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