Obtener Id de recurso de ImageView

Estoy tratando de desarrollar un pequeño juego.

Tengo un ViewFlipper que tiene 50 imágenes (frecuencia aleatoria de 4 imágenes) en ImageViews. Entonces tengo 4 botones con las mismas 4 imágenes que pueden aparecer en el ViewFlipper.

La tarea es hacer clic en el botón derecho cuando aparezca la imagen correcta. (Cuando aparezca la imagen 1 el botón 1 tiene que ser presionado y así sucesivamente)

Mi problema es que no sé cómo obtener el ID de ImageView mostrado.

flipper.getCurrentView().getId() 

Me da "-1" como Id. Pero quiero tener el Id de "R.drawable.pic1"

Mi código hasta ahora:

Mi Loader-Method:

 protected void loadPicturesIntoFlipper() { Random generator = new Random(); pictures = new ArrayList(); for(int i = 0; i < 50;i++){ int number = generator.nextInt(4) + 1; if(number == 1){ pic = R.drawable.pic1; } if(number == 2){ pic = R.drawable.pic2; } if(number == 3){ pic = R.drawable.pic3; } if(number == 4){ pic = R.drawable.pic4; } pictures.add(pic); } for(int i=0;i<pictures.size();i++) { setFlipperImage((Integer) pictures.get(i)); } } 

Mi método de inserción:

 private void setFlipperImage(int res) { image = new ImageView(getApplicationContext()); image.setBackgroundResource(res); flipper.addView(image); } 

Mi método de verificación:

 protected void check(int number, int id) { int code = 0;; if(number == 1){ code = R.drawable.button_tip_finder; } if(number == 2){ code = R.drawable.button_about_us; } if(number == 3){ code = R.drawable.button_power_calculator; } if(number == 4){ code = R.drawable.button_powerpedia; } if(code == id){ test.setText(""+id); } else{ test.setText(""+id); } } 

Lo llamo así:

  button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { check(1,flipper.getCurrentView().getId()); flipper.showNext(); } }); 

Hazlo asi:

 private void setFlipperImage(int res) { image = new ImageView(getApplicationContext()); image.setBackgroundResource(res); image.setTag(res); //<------ flipper.addView(image); } 

y entonces:

 button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { check(1,(Integer)flipper.getCurrentView().getTag());//<---- flipper.showNext(); } }); 

Utilice BTW en todo su código por favor, por ejemplo:

  if(number == 1){ pic = R.drawable.pic1; } else if(number == 2){ pic = R.drawable.pic2; } else if(number == 3){ pic = R.drawable.pic3; } 

Que éste te ayude,

 int icon = getResources().getIdentifier([YOUR IMAGE NAME], "drawable", getPackageName()); 
  • Android captura todos los eventos de movimiento y los envía a los niños
  • Android ViewFlipper + Detector de gestos
  • Cómo agregar mediante programación varios LinearLayouts en una vista y, a continuación, agregar a ViewFlipper?
  • Creación de un ViewFlipper como la pantalla de inicio con MotionEvent.ACTION_MOVE
  • Android: moviendo la imagen de fondo mientras navega por las vistas
  • El valor en edittext no se muestra hasta que se enfoque. Androide
  • ViewFlipper: Receptor no registrado
  • Actualizar altura con ViewFlipper
  • Golpe de Monodroid
  • Cómo establecer ninguna animación para la primera vista de ViewFlipper
  • ViewPager con límites de páginas anteriores y siguientes
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.