Advertisement
mmayoub

my first application: java file - MainActivity.java

May 3rd, 2023
987
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.45 KB | Source Code | 0 0
  1. import androidx.appcompat.app.AppCompatActivity;
  2.  
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.widget.Button;
  6. import android.widget.RadioButton;
  7. import android.widget.RadioGroup;
  8. import android.widget.TextView;
  9. import android.widget.Toast;
  10.  
  11. import java.util.Random;
  12.  
  13. public class MainActivity extends AppCompatActivity {
  14.     // 1 - define variables
  15.     TextView tvQuestion, tvScore;
  16.     RadioButton rbtn1, rbtn2, rbtn3;
  17.     RadioGroup rgOptions;
  18.     Button btnCheck, btnStartAgain;
  19.  
  20.     Random rnd;
  21.     int n1, n2, answer;
  22.     int score;
  23.  
  24.     @Override
  25.     protected void onCreate(Bundle savedInstanceState) {
  26.         super.onCreate(savedInstanceState);
  27.         setContentView(R.layout.activity_main);
  28.  
  29.         // 2 - bind each variable to a view from the layout
  30.         tvQuestion = findViewById(R.id.tvQuestion);
  31.         tvScore = findViewById(R.id.tvScore);
  32.         rbtn1 = findViewById(R.id.rbtn1);
  33.         rbtn2 = findViewById(R.id.rbtn2);
  34.         rbtn3 = findViewById(R.id.rbtn3);
  35.         rgOptions = findViewById(R.id.rgOptions);
  36.         btnCheck = findViewById(R.id.btnCheck);
  37.         btnStartAgain = findViewById(R.id.btnStartAgain);
  38.  
  39.         // 3 - set a listener for each view event
  40.         btnCheck.setOnClickListener(new View.OnClickListener() {
  41.             @Override
  42.             public void onClick(View view) {
  43.                 checkAnswer();
  44.             }
  45.         });
  46.         btnStartAgain.setOnClickListener(new View.OnClickListener() {
  47.             @Override
  48.             public void onClick(View v) {
  49.                 reStart();
  50.             }
  51.         });
  52.         // 4 - select a new question and update ui
  53.         rnd = new Random();
  54.  
  55.         reStart();
  56.  
  57.     }
  58.  
  59.     private void checkAnswer() {
  60.         int userAnswer;
  61.         switch (rgOptions.getCheckedRadioButtonId()) {
  62.             case R.id.rbtn1:
  63.                 userAnswer = Integer.parseInt(rbtn1.getText().toString());
  64.                 break;
  65.             case R.id.rbtn2:
  66.                 userAnswer = Integer.parseInt(rbtn2.getText().toString());
  67.                 break;
  68.             case R.id.rbtn3:
  69.                 userAnswer = Integer.parseInt(rbtn3.getText().toString());
  70.                 break;
  71.             default:
  72.                 userAnswer = -1;
  73.         }
  74.  
  75.         if (userAnswer == -1) {
  76.             Toast.makeText(MainActivity.this, "choose an answer first!", Toast.LENGTH_SHORT).show();
  77.         } else {
  78.             if (answer == userAnswer) {
  79.                 // update and show score
  80.                 score++;
  81.                 tvScore.setText("Score: " + score);
  82.                 Toast.makeText(MainActivity.this, "good work!", Toast.LENGTH_SHORT).show();
  83.  
  84.                 // Show new question
  85.                 newQuestion();
  86.             } else {
  87.                 // stop currrent game
  88.                 btnCheck.setEnabled(false);
  89.                 rbtn1.setEnabled(false);
  90.                 rbtn2.setEnabled(false);
  91.                 rbtn3.setEnabled(false);
  92.  
  93.                 // display restart button
  94.                 btnStartAgain.setVisibility(View.VISIBLE);
  95.             }
  96.         }
  97.     }
  98.  
  99.     private void reStart() {
  100.         btnStartAgain.setVisibility(View.GONE);
  101.         score = 0;
  102.         tvScore.setText("Score: " + score);
  103.         btnCheck.setEnabled(true);
  104.         rbtn1.setEnabled(true);
  105.         rbtn2.setEnabled(true);
  106.         rbtn3.setEnabled(true);
  107.         newQuestion();
  108.     }
  109.  
  110.     private void newQuestion() {
  111.         n1 = rnd.nextInt(50);
  112.         n2 = rnd.nextInt(50);
  113.         answer = n1 + n2;
  114.  
  115.         tvQuestion.setText("  " + n1 + " + " + n2 + "  ");
  116.  
  117.         int opt1, opt2;
  118.         do {
  119.             opt1 = rnd.nextInt(100);
  120.         } while (opt1 == answer);
  121.         do {
  122.             opt2 = rnd.nextInt(100);
  123.         } while (opt2 == answer || opt2 == opt1);
  124.  
  125.         switch (rnd.nextInt(3)) {
  126.             case 0:
  127.                 rbtn1.setText(answer + "");
  128.                 rbtn2.setText(opt1 + "");
  129.                 rbtn3.setText(opt2 + "");
  130.                 break;
  131.             case 1:
  132.                 rbtn1.setText(opt1 + "");
  133.                 rbtn2.setText(answer + "");
  134.                 rbtn3.setText(opt2 + "");
  135.                 break;
  136.             case 2:
  137.                 rbtn1.setText(opt1 + "");
  138.                 rbtn2.setText(opt2 + "");
  139.                 rbtn3.setText(answer + "");
  140.                 break;
  141.         }
  142.  
  143.         // clear current selection
  144.         rgOptions.clearCheck();
  145.     }
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement