Ceci est mon xml, il est situé à l'intérieur d'un fragment qui apparaît dans mon activité.
<FrameLayout
Android:id="@+id/frame1"
Android:layout_width="wrap_content"
Android:layout_height="115dp"
Android:layout_margin="2dp"
Android:layout_weight="0.33">
<ImageView
Android:id="@+id/whoamiwith"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:scaleType="fitCenter"
Android:src="@drawable/default_image" />
</FrameLayout>
Et voici mon Java:
@Override
public void onClick(View click) {
if (click == profileBtn) {
whoamiwith.setBackgroundResource(R.drawable.image_i_wanna_put);
}
}
J'essaye de changer la source d'image de la vue d'image. Il n'y a pas d'erreurs de syntaxe mais quand je clique sur le bouton l'émulateur me donne une force de fermeture et sur le logcat il dit:
Java.lang.NullPointerException
Cela pointe vers la ligne:
whoamiwith.setBackgroundResource(R.drawable.loginbtn);
whoamiwith.setImageResource(R.drawable.loginbtn);
ImageView whoamiwith = (ImageView)findViewById(R.id.whoamiwith)
Drawable new_image= getResources().getDrawable(R.drawable.loginbtn);
whoamiwith.setBackgroundDrawable(new_image);
Essayez
ImageView whoamiwith = (ImageView)findViewById(R.id.whoamiwith)
whoamiwith.setImageResource(R.id.new_image);
Initialiser la vue de l'image:
whoamiwith = findViewByid(R.id.whoamiwith);
Ensuite, sur la méthode Click, écrivez ces lignes pour modifier la ressource d'image:
if(Android.os.Build.VERSION.SDK_INT > 15)
{
// for API above 15
whoamiwith.setBackground(getResources().getDrawable(R.drawable.loginbtn));
}
else
{
// for API below 15
whoamiwith.setBackgroundDrawable(getResources().getDrawable(R.drawable.loginbtn));
}
L'exception est whoamiwith
est null. avez-vous initialisé whoamiwith
comme, ImageView whoamiwith = (ImageView) findViewById (R.id.whoamiwith)
Reportez-vous tilisation de setImageDrawable dynamiquement pour définir l'image dans une ImageView
ImageView whoamiwith = (ImageView)findViewById(R.id.whoamiwith);
whoamiwith.setImageResource(R.drawable.image_i_wanna_put);