I'm creating an app which will consist of 100 activities. There is 10 questions for each activity and the user guesses the right answer. That's a lot of coding. How can I make the coding simple - using arrays, refactoring or some design pattern I'm not aware of? See my code below.
Each activity is similar but there are different questions and answers.
Any help would be appreciated.
private TextView whoami3;
private TextView isa1,isa2,isa3,isa4,isa5,isa6,isa7,isa8,isa9,isa10;
private Button myclick;
private EditText answer;
private TextView mycorrect;
private TextView mytryagain;
private Button next_button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_isaiah);
whoami3 = (TextView) findViewById(R.id.whoami3);
isa1 = (TextView) findViewById(R.id.isa1);
isa2 = (TextView) findViewById(R.id.isa2);
isa3 = (TextView) findViewById(R.id.isa3);
isa4 = (TextView) findViewById(R.id.isa4);
isa5 = (TextView) findViewById(R.id.isa5);
isa6 = (TextView) findViewById(R.id.isa6);
isa7 = (TextView) findViewById(R.id.isa7);
isa8 = (TextView) findViewById(R.id.isa8);
isa9 = (TextView) findViewById(R.id.isa9);
isa10 = (TextView) findViewById(R.id.isa10);
myclick = (Button) findViewById(R.id.myclick);
answer = (EditText) findViewById(R.id.answer);
mycorrect = (TextView) findViewById(R.id.mycorrect);
mytryagain = (TextView) findViewById(R.id.mytryagain);
next_button = (Button) findViewById(R.id.next_button);
whoami3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView whoami3 = (TextView) findViewById(R.id.whoami3);
TextView isa1 = (TextView) findViewById(R.id.isa1);
TextView isa2 = (TextView) findViewById(R.id.isa2);
TextView isa3 = (TextView) findViewById(R.id.isa3);
TextView isa4 = (TextView) findViewById(R.id.isa4);
TextView isa5 = (TextView) findViewById(R.id.isa5);
TextView isa6 = (TextView) findViewById(R.id.isa6);
TextView isa7 = (TextView) findViewById(R.id.isa7);
TextView isa8 = (TextView) findViewById(R.id.isa8);
TextView isa9 = (TextView) findViewById(R.id.isa9);
TextView isa10 = (TextView) findViewById(R.id.isa10);
Button ansewer = (Button) findViewById(R.id.myclick);
TextView mycorrect = (TextView) findViewById(R.id.mycorrect);
TextView mytryagain = (TextView) findViewById(R.id.mytryagain);
if (whoami3.isShown()) {
whoami3.setVisibility(View.INVISIBLE);
isa1.setVisibility(View.VISIBLE);
} else {
whoami3.setVisibility(View.VISIBLE);
}
}
});
isa1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isa1.isShown()) {
isa1.setVisibility(View.INVISIBLE);
isa2.setVisibility(View.VISIBLE);
} else {
isa1.setVisibility(View.VISIBLE);
}
}
});
isa2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isa2.isShown()) {
isa2.setVisibility(View.INVISIBLE);
isa3.setVisibility(View.VISIBLE);
} else {
isa2.setVisibility(View.VISIBLE);
}
}
});
isa3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isa3.isShown()) {
isa3.setVisibility(View.INVISIBLE);
isa4.setVisibility(View.VISIBLE);
} else {
isa3.setVisibility(View.VISIBLE);
}
}
});
isa4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isa4.isShown()) {
isa4.setVisibility(View.INVISIBLE);
isa5.setVisibility(View.VISIBLE);
} else {
isa4.setVisibility(View.VISIBLE);
}
}
});
isa5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isa5.isShown()) {
isa5.setVisibility(View.INVISIBLE);
isa6.setVisibility(View.VISIBLE);
} else {
isa5.setVisibility(View.VISIBLE);
}
}
});
isa6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isa6.isShown()) {
isa6.setVisibility(View.INVISIBLE);
isa7.setVisibility(View.VISIBLE);
} else {
isa6.setVisibility(View.VISIBLE);
}
}
});
isa7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isa7.isShown()) {
isa7.setVisibility(View.INVISIBLE);
isa8.setVisibility(View.VISIBLE);
} else {
isa7.setVisibility(View.VISIBLE);
}
}
});
isa8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isa8.isShown()) {
isa8.setVisibility(View.INVISIBLE);
isa9.setVisibility(View.VISIBLE);
} else {
isa8.setVisibility(View.VISIBLE);
}
}
});
isa9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isa9.isShown()) {
isa9.setVisibility(View.INVISIBLE);
isa10.setVisibility(View.VISIBLE);
} else {
isa9.setVisibility(View.VISIBLE);
}
}
});
myclick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String yourString = "ISAIAH";
if (answer.getText().toString().trim().toLowerCase().equals("ISAIAH".toString().trim().toLowerCase())) {
mycorrect.setVisibility(View.VISIBLE);
} else {
mytryagain.setVisibility(View.VISIBLE);
if (answer.getText().toString().trim().toLowerCase()!=("MARK".toString().trim().toLowerCase())) {
answer.setText("");
}
}
mytryagain.setText("Sorry, Try again");
mytryagain.postDelayed(new Runnable() {
@Override
public void run() {
mytryagain.setVisibility(View.INVISIBLE);
}
}, 2000);
}
});
}
public void onClick(View view){
Random rnd = new Random();
int x=rnd.nextInt(4)+1;
Intent intent = new Intent();
switch (x){
case 1:
intent.setClass(this,John.class);
break;
case 2:
intent.setClass(this,Caleb.class);
break;
case 3:
intent.setClass(this,Mark.class);
break;
case 4:
intent.setClass(this,Jacob.class);
break;
}
startActivity(intent);
finish();
}