-1

ユーザーが質問で 1 ~ 5 ポイントを獲得する小さなクイズ (5 問) を作成しています。質問ごとに5つの答えがあるので、5つのボタンがあります。

私は5つの異なるアクティビティを望んでいないので、ユーザーがランダムな回答/ボタンをクリックしたときにボタン+質問のテキストビューを変更することを考えました。すべてのボタンには 1 ~ 5 個のポイントがありますが、常に同じボタンです。たとえば、最初の質問でボタン 1 をクリックすると 1 ポイントが与えられますが、2 番目の質問でボタン 4 をクリックすると 4 ポイントが得られます。理にかなっていますか?

したがって、私の問題は if ステートメントが機能しないことであり、その理由がわかりません。それはおそらく本当に小さなことですが、Android向けのプログラミングは初めてなので、そうです。:(

コードの何が問題になっていますか? エラーはありません。ボタン1をクリックすると、「最後の1つ」に変わり、スコアが表示されます。

  public class Vraag1 extends Activity implements OnClickListener{

 Button a;
 Button b;
 Button c;
 Button d;
 Button e; 
 TextView scoreatm; 
 int int1 = 0;
 int int2 = 0;
 int int3 = 0;
 int int4 = 0;
 int int5 = 0;
 int intwelk = 0;


protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_vraag1);

        a = (Button) findViewById(R.id.button1);
        a.setOnClickListener(this);

        b = (Button) findViewById(R.id.button2);
        b.setOnClickListener(this);

        c = (Button) findViewById(R.id.button3);
        c.setOnClickListener(this);

        d = (Button) findViewById(R.id.button4);
        d.setOnClickListener(this);

        e = (Button) findViewById(R.id.button5);
        e.setOnClickListener(this);  

}

public void onClick(View v) {
// TODO Auto-generated method stub

      switch (v.getId()) {
         case R.id.button1: 

                if (intwelk == 0){
                    intwelk = 1;
                    int1 = 1; //1 point
                    a.setText("Change in this");        
                }

                if (intwelk == 1){  
                    intwelk = 2;
                    int2 = 1; //1 point
                    a.setText("Now this"); 
                }

                if (intwelk == 2){      
                    intwelk = 3;
                    int3 = 1; //1 point
                    a.setText("And this");      
                }

                if (intwelk == 3){          
                    intwelk = 4;
                    int4 = 1; //1 point
                    a.setText("Last one");          
                }

                if (intwelk == 4){
                    intwelk = 0;
                    int5 = 1; //1 point

                    showScore();
                }

          break;
         case R.id.button2:

                int1 = 2;

          break;
         case R.id.button3:

                int1 = 3;

          break;
         case R.id.button4:

                int1 = 4;

          break;
         case R.id.button5:

                int1 = 5;

          break;

      }
   }
4

1 に答える 1

0

ああすごい。これを投稿したとき、私はそれを理解しました。

intwelk == 4、次に intwelk == 3、次に intwelk == 2 で開始する必要がありました。

コードは上から下に読み取られるため、理にかなっています。遅くなりそうです!

于 2013-11-14T17:08:21.013 に答える