J'ai défini une image pour un Maintenant, mon besoin est de savoir quelle est l'image définie pour un comme p> Je voudrais donc savoir s'il existe une méthode (Afaik, cela ne signifie pas) et s'il ne contient pas comment garder une trace de quelles ressources ont été définies pour un merci.
Sana. P> p> imageview code> à l'aide du
setimageresource (r.drawable.icon1) code>.
imageview code> et faire un certain traitement. p>
imageview code >. P>
5 Réponses :
Vous devriez pouvoir utiliser le paquet et définir les propriétés dont vous avez besoin.
Intent i = new Intent(); Bundle extras = new Bundle(); i.putExtra("prop", "value");
Hein? Vous devez penser à la méthode imageview.settag (objet) code> à la place.
Vous supposez que parce que vous mettez un entier dans, vous êtes en mesure d'obtenir un entier de retour entier, et ce n'est pas la manière dont Votre meilleure solution va suivre la trace de la dernière carte d'identité que vous avez utilisée: p > setimageresource () code> fonctionne. Voir imageview # Setimageresource () . C'est juste une méthode de commodité pour vous: ce que fait Android fait dans les coulisses, lève la ressource introactive (dans la plupart des cas, c'est un bitMapDrawable, mais il pourrait être n'importe quel type), puis appliquer cette ressource à l'imageView en tant que Objet bitmap (c'est-à-dire des données d'image uniquement - il n'a aucune idée de son "ID de ressource" original précédemment).
imageView.setImageResource(R.drawable.image1);
this.mLastResourceId = R.drawable.image1;
// ...
// Later, when checking the resource:
if (this.mLastResourceId == R.drawable.image1) {
// Do something
}
Une autre alternative, si possible, serait de sous-classer l'imageView et de stocker l'entier dans une norme remplaçante SettimagereSource ().
public class MyImageView extends ImageView { int rememberId = -1; @override void setImageResource(int resId){ rememberId = resId; } int getMyResId(){ return rememberId; } }
package com.widget; import android.content.Context; import android.util.AttributeSet; import android.widget.ImageButton; /** * custom star type imagebutton that can be obtain the background image resource * id. * * </p> your layout xml resource might be like the following code: <br> * <view class="com.widget.StarButton" <br> * android:id="@+id/starButton" <br> * android:layout_width="wrap_content" <br> * android:layout_height="wrap_content" <br> * android:background="@android:color/background_light" <br> * android:paddingTop="10dp" <br> * android:src="@drawable/star" /> <br> * * @author Jeffen * */ public class StarButton extends ImageButton { private int mLastResourceId = -1; public StarButton(Context context) { super(context); } public StarButton(Context context, AttributeSet attrs) { this(context, attrs, android.R.attr.imageButtonStyle); } public StarButton(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); setFocusable(true); } /** * set image resource and sync image resource id. */ @Override public void setImageResource(int resId) { super.setImageResource(resId); setImageResourceId(resId); } public int getImageResourceId() { return mLastResourceId; } public void setImageResourceId(int resId) { mLastResourceId = resId; } }
Vous devriez pouvoir utiliser la propriété Tag comme suit:
imageView.setImageResource(R.drawable.icon1); imageView.setTag(Integer.valueOf(R.drawable.icon1)); // later int drawable = (Integer) imageView.getTag(); switch(drawable) { case R.drawable.icon1: // do_something.... break; case R.drawable.icon2: // do_something.... break; ... }
Pourquoi ne pas simplement le faire vous-même, si vous êtes celui qui fait le cadre?
Je ne comprends pas ce que vous voulez transmettre. Peux-tu expliquer.
Je suggère de stocker simplement l'ID de l'image que vous avez définie dans l'imageView dans un autre lieu lorsque vous l'avez définie, comme le suggéra Joe.
La pensée est que je définit des identifiants d'images de numéro 'n'. Donc, je ne sais pas combien d'identifiants je dois garder une trace de, donc je voulais juste si Android pouvait me donner les identifiants de la vue qui est cliqué.