Gracias por la respuesta, genial, empezare a utilizar la etiqueta.
Código Java:
Ver originalpublic class Picto {
protected Drawable Icono;
protected Picto[] Hijos;
public Picto
(Drawable icono,
String oracion, Picto
[] hijos
) { super();
this.Icono = icono;
this.Oracion = oracion;
this.Hijos = hijos;
Log.e("TAG","Se creo un Picto "+oracion);
}
public Drawable getIcono() {Log.e("TAG","Devuelvo un drawable");return Icono;}
public String getOracion
() {Log.
e("TAG",
"Devuelvo una oracion");return Oracion
;}
public Picto[] getHijos() {return Hijos;}
public Picto getQueHijo(int i) {Log.e("TAG","Devuelvo un hijo");return Hijos[i];}
Código Java:
Ver original//Declaro mis pictos
Picto Hola;
Picto Chau;
Picto Bien;
Picto Comoestas;
Picto Jabon;
Picto Dos;
Picto Tres;
Picto Cuatro;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Aquí implemento los picto, les asigno un icono, un texto y sus hijos. Es la forma correcta?
Hola=new Picto(getResources().getDrawable(R.drawable.ic_hola),"Hola", new Picto[]{Jabon, Aspirina, Digestivo, Descongestivo});
Comoestas=new Picto(getResources().getDrawable(R.drawable.ic_comoestas),"Como estas?", new Picto[]{Jabon, Aspirina, Digestivo, Descongestivo});
Bien=new Picto(getResources().getDrawable(R.drawable.ic_bien),"Bien", new Picto[]{Jabon, Aspirina, Digestivo, Descongestivo});
Chau=new Picto(getResources().getDrawable(R.drawable.ic_adios),"Chau", new Picto[]{Jabon, Aspirina, Digestivo, Descongestivo});
Jabon = new Picto(getResources().getDrawable(R.drawable.ic_jabon),"Jabon",new Picto[]{Hola, Comoestas, Bien, Chau});
Aspirina = new Picto(getResources().getDrawable(R.drawable.ic_aspirina),"Aspirina",new Picto[]{Hola, Comoestas, Bien, Chau});
Digestivo = new Picto(getResources().getDrawable(R.drawable.ic_digestivo),"Digestivo",new Picto[]{Hola, Comoestas, Bien, Chau});
Descongestivo = new Picto(getResources().getDrawable(R.drawable.ic_descongestivo),"Descongestivo",new Picto[]{Hola, Comoestas, Bien, Chau});
}
//Luego tengo esta función que me pone un imagen correspondiente al primer hijo, de fondo de mi boton.
void CargarHijos(Picto pictograma){
Opcion1.setImageDrawable(pictograma.getQueHijo(1).getIcono());
Opcion1.startAnimation(AnimationUtils.loadAnimation(this, R.anim.overshoot_abajo));
Opcion2.setImageDrawable(pictograma.getQueHijo(2).getIcono());
Opcion2.startAnimation(AnimationUtils.loadAnimation(this, R.anim.overshoot_abajo));
}
@Override
public void onClick
(View v
) { switch (v.getId()) {
case R.id.Opcion1:
CargarSeleccion(PictoOpcion2);
CargarHijos(PictoOpcion2);
CantClicks++;
break;
case R.id.Opcion2:
CargarOracion(PictoOpcion2);
CargarSeleccion(PictoOpcion2);
CargarHijos(PictoOpcion2);
CantClicks++;
break;
Además puse unas entradas en el LOG para ver que está ocurriendo.
y el Log>
03-04 13:57:01.147 30164-30164/com.stonefacesoft.ottaa E/TAG﹕ Se creo un Picto Hola
03-04 13:57:01.177 30164-30164/com.stonefacesoft.ottaa E/TAG﹕ Se creo un Picto Como estas?
03-04 13:57:01.207 30164-30164/com.stonefacesoft.ottaa E/TAG﹕ Se creo un Picto Bien
03-04 13:57:01.227 30164-30164/com.stonefacesoft.ottaa E/TAG﹕ Se creo un Picto Chau
03-04 13:57:01.247 30164-30164/com.stonefacesoft.ottaa E/TAG﹕ Se creo un Picto Jabon
03-04 13:57:01.307 30164-30164/com.stonefacesoft.ottaa E/TAG﹕ Se creo un Picto Aspirina
03-04 13:57:01.377 30164-30164/com.stonefacesoft.ottaa E/TAG﹕ Se creo un Picto Digestivo
03-04 13:57:01.427 30164-30164/com.stonefacesoft.ottaa E/TAG﹕ Se creo un Picto Descongestivo
03-04 13:57:27.485 30164-30164/com.stonefacesoft.ottaa E/TAG﹕ Devuelvo un hijo
Ese es el error
java.lang.NullPointerException
at com.stonefacesoft.ottaa.Principal.CargarHijos(Prin cipal.java:272)
at com.stonefacesoft.ottaa.Principal.onClick(Principa l.java:301)