//This is what I have in my xml string
<resources>
<string name="app_name">MiAmigoTodaro1</string>
<string name="et_nombe">¿Cuál es tu nombre?</string>
<string name="boton">JUGAR</string>
<string name="et_vidas">Huesitos</string>
<string name="jugador_nombre">Jugador:</string>
<string name="total_score">Score: 0</string>
<string name="boton_sumar">Comprobar</string>
<string name="et_respuesta">Respuesta</string>
<string name="tv_pregunta">Pregunta</string>
<string name="button_check">Verifica</string>
<array name="todas_preguntas">
<item>¿Cuál es el principal musculo inspiratorio?;Pectoral mayor;*Diafragma;Intercostal interno;Intercostal externo</item>
<item>¿Rama terminal de la arteria carótida externa?;Art. lingual;Art. facial;Art. subclavia;*Art. maxilar</item>
<item>Par craneal con componente funcional aferente somático;V;*II;III;IV</item>
<item>dfkmkdfkndsnvl;k;II;*III;IV</item>
<item>Nervio relacionado a extension del antebrazo;Cubital;*Radial;Musculocutaneo;Mediano</item>
<item>Inerva el diafragma;Femoral;Mediano;;*Frénico</item>
</array>
//and this is a part of what I have in my main activity 2. I have the alternatives grouped in a radio group. When I hit the verify button it goes to the next question, but in the same order every time I run the app.
public class Main2Activity_Nivel1 extends AppCompatActivity {
private TextView tv_nombre, tv_score;
private ImageView iv_huesitos;
private EditText et_respuesta;
private MediaPlayer mp, mp_baia_baia, mp_ohperdon;
private int ids_respuestas[] ={
R.id.respuesta1, R.id.respuesta2, R.id.respuesta3, R.id.respuesta4
};
int score, resultado, huesitos = 3;
String nombre_jugador, string_score, string_huesitos;
private int respuesta_correcta;
private int pregunta_actual;
private String[] todas_preguntas;
private TextView tv_pregunta;
private RadioGroup group;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2__nivel1);
Toast.makeText(this, "Nivel 1 - Cosas grandes", Toast.LENGTH_LONG).show();
tv_nombre = (TextView)findViewById(R.id.textView_nombre);
tv_score = (TextView)findViewById(R.id.textView_score);
iv_huesitos = (ImageView)findViewById(R.id.imageView_vidas);
nombre_jugador = getIntent().getStringExtra("jugador");
tv_nombre.setText("Jugador: " + nombre_jugador);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(R.mipmap.ic_launcher);
mp = MediaPlayer.create(this, R.raw.goats);
mp.start();
mp.setLooping(true);
mp_baia_baia = MediaPlayer.create(this, R.raw.baia_baia);
mp_ohperdon = MediaPlayer.create(this, R.raw.ohperdon);
tv_pregunta = (TextView)findViewById(R.id.tv_pregunta);
group = (RadioGroup)findViewById(R.id.grupo_respuestas);
Button button_check = (Button)findViewById(R.id.button_check);
todas_preguntas = getResources().getStringArray(R.array.todas_preguntas);
pregunta_actual = 0;
mostrarpregunta();
// TODO: Cuando clickean al boton deberia pasar a la siguiente pregunta
button_check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int id = group.getCheckedRadioButtonId();
int respuesta = -1;
for (int i = 0; i < ids_respuestas.length; i++) {
if (ids_respuestas[i] == id) {
respuesta = i;
}
}
if (respuesta == respuesta_correcta) {
Toast.makeText(Main2Activity_Nivel1.this, "Muy bien!!", Toast.LENGTH_SHORT).show();
mp_baia_baia.start();
score++;
tv_score.setText("Score: " + score);
} else{
Toast.makeText(Main2Activity_Nivel1.this, "incorrecto", Toast.LENGTH_SHORT).show();
mp_ohperdon.start();
huesitos--;
switch (huesitos){
case 3:
iv_huesitos.setImageResource(R.drawable.craneo3);
break;
case 2:
iv_huesitos.setImageResource(R.drawable.craneo2);
break;
case 1:
iv_huesitos.setImageResource(R.drawable.craneo1);
break;
case 0:
Intent intent = new Intent(view.getContext(), MainActivity.class);
startActivity(intent);
finish();
mp.stop();
mp.release();
break;
}
}
if (pregunta_actual < todas_preguntas.length-1){
pregunta_actual++;
mostrarpregunta();
}
}
});
// TODO: Molaria tener un boton que pase al anterior
}
private void mostrarpregunta() {
String p = todas_preguntas[pregunta_actual];
String[] partes = p.split(";");
group.clearCheck();
tv_pregunta.setText(partes[0]);
for (int i = 0; i < ids_respuestas.length; i++){
RadioButton rb = (RadioButton)findViewById(ids_respuestas[i]);
String respuesta = partes[i+1];
if(respuesta.charAt(0) == '*') {
respuesta_correcta = i;
respuesta = respuesta.substring(1);
}
rb.setText(respuesta);
}
}
}
//So far the application works without any problem, but I can only go to the next question (but I always have the same question order. I know that I have to implement the random method, but I don't know where or how, I would appreciate the help of the community
The best way might be to pass that
array
to oneList
and mix the content withCollections.shuffle()
.Now you just have to change the access to the array as:
By: