I'm having a problem with an arraylist. What I want to do is retrieve a random item from the Arraylist called "NombresImagenesAzúcares", wich contains String elements.
My solution was to generate a random number called "num1" between 0 and the size of "NombresImagenesAzúcares" and then set the value of another String called "AzucarRandom" to the item of the Arraylist on the position "num1".
Random random = new Random();
int num1=0;
num1 = random.nextInt(NombresImagenesAzúcares.size());
String AzucarRandom = NombresImagenesAzúcares.get(num1);
Since the app wasn't working I debugged it and found out that the problem was that the value of "AzucarRandom" was null. I tried searching for a solution but I don't understand why the code doesn't work.
Here is the full code and the code for the class "Azucar"
public class AzucarCorrecto extends AppCompatActivity {
private TextView AzucarAzar;
private ImageButton ib1,ib2,ib3,ib4;
private int BotonSeleccionado = 0, BotonCorrecto=0;
private ArrayList<String> NombresImagenesAzúcares = new ArrayList<>();
//Objetos Carga de Datos
private ArrayList<Azucar> Azúcares = new ArrayList<>();
private ArrayList<Azucar> AldosasHaworth = new ArrayList<>();
//Objetos Carga de Datos
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_azucar_correcto);
//----------------------------------------------------------------------------------------------
// COMIENZA CARGA DE DATOS
//----------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
//Carga de Aldosas para busqueda Imagen en Fischer
Azucar Fgliceraldehido = new Azucar();
Fgliceraldehido.setNombre("D-Gliceraldehído");
Fgliceraldehido.setNombreImagen("fischer_gliceraldehido");
Azucar Feritrosa = new Azucar();
Feritrosa.setNombre("D-Eritrosa");
Feritrosa.setNombreImagen("fischer_eritrosa");
Azucar Ftreosa = new Azucar();
Ftreosa.setNombre("D-Treosa");
Ftreosa.setNombreImagen("fischer_treosa");
Azucar Fribosa = new Azucar();
Fribosa.setNombre("D-Ribosa");
Ftreosa.setNombreImagen("fischer_ribosa");
Azucar FArabinosa = new Azucar();
FArabinosa.setNombre("D-Arabinosa");
Ftreosa.setNombreImagen("fischer_arabinosa");
Azucar FXilosa = new Azucar();
FXilosa.setNombre("D-Xilosa");
Ftreosa.setNombreImagen("fischer_xilosa");
Azucar FLixosa = new Azucar();
FLixosa.setNombre("D-Lixosa");
Ftreosa.setNombreImagen("fischer_lixosa");
Azucar FAlosa = new Azucar();
FAlosa.setNombre("D-Alosa");
Ftreosa.setNombreImagen("fischer_alosa");
Azucar FAltrosa = new Azucar();
FAltrosa.setNombre("D-Altrosa");
Ftreosa.setNombreImagen("fischer_altrosa");
Azucar FGlucosa = new Azucar();
FGlucosa.setNombre("D-Glucosa");
Ftreosa.setNombreImagen("fischer_glucosa");
Azucar FManosa = new Azucar();
FManosa.setNombre("D-Manosa");
Ftreosa.setNombreImagen("fischer_manosa");
Azucar FGlulosa = new Azucar();
FGlulosa.setNombre("D-Glulosa");
Ftreosa.setNombreImagen("fischer_glulosa");
Azucar FIdosa = new Azucar();
FIdosa.setNombre("D-Idosa");
Ftreosa.setNombreImagen("fischer_idosa");
Azucar FGalactosa = new Azucar();
FGalactosa.setNombre("D-Galactosa");
Ftreosa.setNombreImagen("fischer_galactosa");
Azucar FTalosa = new Azucar();
FTalosa.setNombre("D-Talosa");
Ftreosa.setNombreImagen("fischer_talosa");
//----------------------------------------------------------------------------------
//ArrayList Azúcares
Azúcares.add(Fgliceraldehido);
Azúcares.add(Feritrosa);
Azúcares.add(Ftreosa);
Azúcares.add(Fribosa);
Azúcares.add(FArabinosa);
Azúcares.add(FXilosa);
Azúcares.add(FLixosa);
Azúcares.add(FAlosa);
Azúcares.add(FAltrosa);
Azúcares.add(FGlucosa);
Azúcares.add(FManosa);
Azúcares.add(FGlulosa);
Azúcares.add(FIdosa);
Azúcares.add(FGalactosa);
Azúcares.add(FTalosa);
//-------------------------------------------------------------------------------------
// Carga Nombres Aldosas Haworth
//NombresAldosasHaworth.add("haworth_alfa_glucosa");
//NombresAldosasHaworth.add("β-D-Glucopiranosa");
//----------------------------------------------------------------------------------------------
// FINALIZA CARGA DE DATOS
//----------------------------------------------------------------------------------------------
//NombresAzúcares.addAll(AldosasHaworth);
for (int ii=0;ii<Azúcares.size();ii++){
NombresImagenesAzúcares.add(Azúcares.get(ii).getNombreImagen());}
GenerarAzucaryOpciones();
}
//------------------------------------------------------------------------------------------
//Metodo para cargar un nombre de Azucar al Azar
public void GenerarAzucaryOpciones(){
AzucarAzar = findViewById(R.id.txt_Azucar);
//Elijo un azúcar al azar y tomo su NombreImagen
Random random = new Random();
int num1=0;
num1 = random.nextInt(NombresImagenesAzúcares.size());
String AzucarRandom = NombresImagenesAzúcares.get(num1);
public class Azucar implements Serializable {
private String Nombre, NombreImagen;
private int Imagen;
public String getNombre() {
return Nombre;
}
public void setNombre(String nombre) {
Nombre = nombre;
}
public int getImagen() {
return Imagen;
}
public void setImagen(int imagen) {
Imagen = imagen;
}
public String getNombreImagen(){return NombreImagen;}
public void setNombreImagen(String nombremostrar){
NombreImagen =nombremostrar;}
}
Aucun commentaire:
Enregistrer un commentaire