Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/03/2015, 10:40
hectoritr
 
Fecha de Ingreso: mayo-2008
Mensajes: 5
Antigüedad: 16 años, 9 meses
Puntos: 0
Mensaje Respuesta: Array de objetos en Java nullPointer

Gracias por la respuesta, genial, empezare a utilizar la etiqueta.

Código Java:
Ver original
  1. public class Picto {
  2.     protected Drawable Icono;
  3.     protected String Oracion;
  4.     protected Picto[] Hijos;
  5.  
  6.     public Picto(Drawable icono, String oracion, Picto[] hijos) {
  7.         super();
  8.         this.Icono = icono;
  9.         this.Oracion = oracion;
  10.         this.Hijos = hijos;
  11.         Log.e("TAG","Se creo un Picto "+oracion);
  12.     }
  13.  
  14.     public Drawable getIcono() {Log.e("TAG","Devuelvo un drawable");return Icono;}
  15.  
  16.     public String getOracion() {Log.e("TAG","Devuelvo una oracion");return Oracion;}
  17.  
  18.     public Picto[] getHijos() {return Hijos;}
  19.  
  20.     public Picto getQueHijo(int i) {Log.e("TAG","Devuelvo un hijo");return Hijos[i];}

Código Java:
Ver original
  1. //Declaro mis pictos
  2.  
  3.     Picto Hola;
  4.     Picto Chau;
  5.     Picto Bien;
  6.     Picto Comoestas;
  7.     Picto Jabon;
  8.     Picto Dos;
  9.     Picto Tres;
  10.     Picto Cuatro;
  11.  
  12.     protected void onCreate(Bundle savedInstanceState) {
  13.         super.onCreate(savedInstanceState);
  14.  
  15.         //Aquí implemento los picto, les asigno un icono, un texto y sus hijos. Es la forma correcta?
  16.         Hola=new Picto(getResources().getDrawable(R.drawable.ic_hola),"Hola", new Picto[]{Jabon, Aspirina, Digestivo, Descongestivo});
  17.         Comoestas=new Picto(getResources().getDrawable(R.drawable.ic_comoestas),"Como estas?", new Picto[]{Jabon, Aspirina, Digestivo, Descongestivo});
  18.         Bien=new Picto(getResources().getDrawable(R.drawable.ic_bien),"Bien", new Picto[]{Jabon, Aspirina, Digestivo, Descongestivo});
  19.         Chau=new Picto(getResources().getDrawable(R.drawable.ic_adios),"Chau", new Picto[]{Jabon, Aspirina, Digestivo, Descongestivo});
  20.         Jabon = new Picto(getResources().getDrawable(R.drawable.ic_jabon),"Jabon",new Picto[]{Hola, Comoestas, Bien, Chau});
  21.         Aspirina = new Picto(getResources().getDrawable(R.drawable.ic_aspirina),"Aspirina",new Picto[]{Hola, Comoestas, Bien, Chau});
  22.         Digestivo = new Picto(getResources().getDrawable(R.drawable.ic_digestivo),"Digestivo",new Picto[]{Hola, Comoestas, Bien, Chau});
  23.         Descongestivo = new Picto(getResources().getDrawable(R.drawable.ic_descongestivo),"Descongestivo",new Picto[]{Hola, Comoestas, Bien, Chau});
  24.  
  25. }
  26.         //Luego tengo esta función que me pone un imagen correspondiente al primer hijo, de fondo de mi boton.
  27.  
  28.         void CargarHijos(Picto pictograma){
  29.         Opcion1.setImageDrawable(pictograma.getQueHijo(1).getIcono());
  30.         Opcion1.startAnimation(AnimationUtils.loadAnimation(this, R.anim.overshoot_abajo));
  31.         Opcion2.setImageDrawable(pictograma.getQueHijo(2).getIcono());
  32.         Opcion2.startAnimation(AnimationUtils.loadAnimation(this, R.anim.overshoot_abajo));
  33.  
  34. }
  35.      @Override
  36.         public void onClick(View v) {
  37.         String Saludo = " ";
  38.         String SaludoChau = " ";
  39.         switch (v.getId()) {
  40.             case R.id.Opcion1:
  41.                 CargarSeleccion(PictoOpcion2);
  42.                 CargarHijos(PictoOpcion2);
  43.                 CantClicks++;
  44.                 break;
  45.             case R.id.Opcion2:
  46.                 CargarOracion(PictoOpcion2);
  47.                 CargarSeleccion(PictoOpcion2);
  48.                 CargarHijos(PictoOpcion2);
  49.                 CantClicks++;
  50.                 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)

Última edición por hectoritr; 04/03/2015 a las 10:56 Razón: Faltaban datos del problema