sorry for the question but i'm newbie in Android, I want to change the source of a ImageView calling another class, but the application closes.
The source code:
public class JugarActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_jugar);
int nivel = 1;
Niveles crearnivel = new Niveles();
crearnivel.CrearNivel(nivel);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_jugar, menu);
return true;
}
}
The class:
public class Niveles extends JugarActivity {
ImageView pregunta = (ImageView) findViewById(R.id.imagePregunta);
ImageView respuestaA = (ImageView) findViewById(R.id.imageRespuesta1);
ImageView respuestaB = (ImageView) findViewById(R.id.imageRespuesta2);
ImageView respuestaC = (ImageView) findViewById(R.id.imageRespuesta3);
ImageView respuestaD = (ImageView) findViewById(R.id.imageRespuesta4);
public void CrearNivel(int nivel) {
if(nivel == 1) {
pregunta.setImageResource(R.drawable.pregunta1);
respuestaA.setImageResource(R.drawable.pregunta1_a);
respuestaB.setImageResource(R.drawable.pregunta1_b);
respuestaC.setImageResource(R.drawable.pregunta1_c);
respuestaD.setImageResource(R.drawable.pregunta1_d);
}
}
}
What's wrong? Thanks
instead of extending Activity class you can create create an constructor for passing current Activity context for accessing imageView in non class. change your classes as :
public class Niveles {
Activity activity;
public Niveles(Activity activity){
this.activity=activity;
}
ImageView pregunta = (ImageView)activity.findViewById(R.id.imagePregunta);
ImageView respuestaA = (ImageView)activity. findViewById(R.id.imageRespuesta1);
ImageView respuestaB = (ImageView)activity. findViewById(R.id.imageRespuesta2);
ImageView respuestaC = (ImageView)activity. findViewById(R.id.imageRespuesta3);
ImageView respuestaD = (ImageView)activity. findViewById(R.id.imageRespuesta4);
public void CrearNivel(int nivel) {
if(nivel == 1) {
pregunta.setImageResource(R.drawable.pregunta1);
respuestaA.setImageResource(R.drawable.pregunta1_a);
respuestaB.setImageResource(R.drawable.pregunta1_b);
respuestaC.setImageResource(R.drawable.pregunta1_c);
respuestaD.setImageResource(R.drawable.pregunta1_d);
}
}
}
and pass Activity context as to Niveles:
Niveles crearnivel = new Niveles(this);
crearnivel.CrearNivel(nivel);