For practicing purposes I made this program with humble intentions to be a Math game. It creates basic operations like sums, subtractions, multiplications and divisions, in a randomly fashion, along with the right answer and two incorrect answers. Each valid answers adds a point to the user.
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; import android.widget.TextView; import com.example.mytoolbox.utilities.NumberUtilities; public class MathRallyActivity extends Activity implements OnClickListener { public enum Operation { SUM, DIVISION, MULTIPLICATION, SUBSTRACT } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_math_rally); Button buttonOption1 = (Button) findViewById(R.id.buttonMath1); Button buttonOption2 = (Button) findViewById(R.id.buttonMath2); Button buttonOption3 = (Button) findViewById(R.id.buttonMath3); ImageButton buttonHome = (ImageButton) findViewById(R.id.imageButtonHome); buttonOption1.setOnClickListener(this); buttonOption2.setOnClickListener(this); buttonOption3.setOnClickListener(this); buttonHome.setOnClickListener(this); createOperation(); } private void createOperation() { Operation operation = generateRandOperation(); int operand1 = NumberUtilities.generateRandNumber(2, 100); int operand2 = NumberUtilities.generateRandNumber(2, 100); String operationText = String.valueOf(operand1) + " " + getOperationString(operation) + " " + String.valueOf(operand2) + "?"; TextView textViewOperation = (TextView) findViewById(R.id.textViewOperation); textViewOperation.setText(operationText); float rightValue = calculateRightValue(operation, operand1, operand2); rightBox = NumberUtilities.generateRandNumber(1, 3); float randWrongValue1 = NumberUtilities.generateRandNumber(2); float randWrongValue2 = NumberUtilities.generateRandNumber(2); Button buttonOption1 = (Button) findViewById(R.id.buttonMath1); Button buttonOption2 = (Button) findViewById(R.id.buttonMath2); Button buttonOption3 = (Button) findViewById(R.id.buttonMath3); switch (rightBox) { case 0: buttonOption1.setText(String.valueOf(rightValue)); buttonOption2.setText(String.valueOf(randWrongValue1)); buttonOption3.setText(String.valueOf(randWrongValue2)); break; case 1: buttonOption2.setText(String.valueOf(rightValue)); buttonOption1.setText(String.valueOf(randWrongValue1)); buttonOption3.setText(String.valueOf(randWrongValue2)); break; case 2: buttonOption3.setText(String.valueOf(rightValue)); buttonOption1.setText(String.valueOf(randWrongValue1)); buttonOption2.setText(String.valueOf(randWrongValue2)); break; } } private float calculateRightValue(Operation oper, int operand1, int operand2) { float calculation = 0; if (oper == Operation.SUM) { calculation = operand1 + operand2; } else if (oper == Operation.MULTIPLICATION) { calculation = operand1 * operand2; } else if (oper == Operation.SUBSTRACT) { calculation = operand1 - operand2; } else if (oper == Operation.DIVISION) { calculation = operand1 / operand2; } return calculation; } private String getOperationString(Operation oper) { String operationText = ""; if (oper == Operation.SUM) { operationText = "+"; } else if (oper == Operation.MULTIPLICATION) { operationText = "*"; } else if (oper == Operation.SUBSTRACT) { operationText = "-"; } else if (oper == Operation.DIVISION) { operationText = "/"; } return operationText; } private Operation generateRandOperation() { int rand = NumberUtilities.generateRandNumber(1, 4); Operation operation = null; switch(rand) { case 0: operation = Operation.SUM; break; case 1: operation = Operation.DIVISION; break; case 2: operation = Operation.MULTIPLICATION; break; case 3: operation = Operation.SUBSTRACT; break; } return operation; } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_math_rally, menu); return true; } @Override public void onClick(View view) { boolean correct = false; boolean play = true; switch(view.getId()) { case R.id.buttonMath1: if (rightBox == 0) { correct = true; } break; case R.id.buttonMath2: if (rightBox == 1) { correct = true; } break; case R.id.buttonMath3: if (rightBox == 2) { correct = true; } break; case R.id.imageButtonHome: startActivity(new Intent(MathRallyActivity.this, ChooseActivity.class)); play = false; break; } if (correct) { points++; updateScore(); } if(play) { createOperation(); } } private void updateScore() { EditText editText = (EditText) findViewById(R.id.editTextPoints); editText.setText(String.valueOf(points)); } private int rightBox; private int points; }