检查上的ActionListener ImageView的资源,而不是的ImageView的id [英] Checking imageview resource on actionlistener rather than the id of the imageview
问题描述
我有16 ImageView的,每一组到onBtnClick作为听者,这种方法会检查ImageView的ID是否对应一个特定的ID里面,我需要改变这种做法,它检查的ImageView内的图像资源,如:
公共无效onBtnClicked(视图V)
{ 如果(v.getId()== R.id.img1)
{
意图的猜测=新意图(这一点,com.Logo_Master.Guesslogo.class);
guess.putExtra(图像,IMG1);
startActivity(猜测);
}
}
必须是这样的:
公共无效onBtnClicked(视图V)
{ 如果(v.getId()== R.drawable.img1)
{
意图的猜测=新意图(这一点,com.Logo_Master.Guesslogo.class);
guess.putExtra(图像,IMG1);
startActivity(猜测);
}
}
或类似的东西.....所以检查的ImageView内的图像,而不是ImageView的......
感谢您。
/ 修改 /
随机随机=新的随机(System.currentTimeMillis的());
清单<整数GT;产生=新的ArrayList<整数GT;();
的for(int i = 0; I< imageViews.length;我++){ INT V = imageViews [I]
接下来INT = random.nextInt(16);
如果(!generated.contains(下)){
generated.add(下);
ImageView的IV =(ImageView的)findViewById(V);
iv.setImageResource(图像[下一页]);
对象标记=(对象)新的整数(getImageName(这一点,将String.valueOf(图像[明])));
iv.setTag(标签);
}
其他{
一世 - ;
}
}公共静态INT getImageId(上下文的背景下,字符串imageName){
返回context.getResources()则getIdentifier(ID /+ imageName +猜测,空,context.getPackageName());
}
公共静态INT getImageName(上下文的背景下,字符串imageName)
{
返回context.getResources()则getIdentifier(绘/+ imageName +猜测,空,context.getPackageName());
}
您可以使用标签来实现这一点:
在创建ImageView的(在code或XML),定义了一个标签:
机器人:标签=标签
或
对象标记=(对象)新的整数(R.drawable.img1);
imageView.setTag(标签);
然后,你需要通过之前获取标签:
对象标记= imageView.getTag();
INT drawableId =的Integer.parseInt(tag.toString());
如果(drawableId == R.drawable.img1){
....
}
祝你好运!
I have 16 imageview, each set to onBtnClick as a listner, inside this method it checks whether the imageview id corresponds to a specific id, I need to change this so it checks the image resource inside the imageview, e.g.
public void onBtnClicked(View v)
{
if( v.getId() == R.id.img1 )
{
Intent guess = new Intent(this, com.Logo_Master.Guesslogo.class);
guess.putExtra("image","img1");
startActivity(guess);
}
}
needs to be something like:
public void onBtnClicked(View v)
{
if( v.getId() == R.drawable.img1 )
{
Intent guess = new Intent(this, com.Logo_Master.Guesslogo.class);
guess.putExtra("image","img1");
startActivity(guess);
}
}
or something similar.....so it checks the image inside the imageview rather than the imageview......
Thank you.
/EDIT/
Random random = new Random( System.currentTimeMillis() );
List<Integer> generated = new ArrayList<Integer>();
for (int i = 0; i < imageViews.length; i++) {
int v = imageViews[i];
int next = random.nextInt( 16 );
if ( !generated.contains( next ) ) {
generated.add( next );
ImageView iv = (ImageView) findViewById( v );
iv.setImageResource( images[next] );
Object tag = (Object) new Integer(getImageName(this, String.valueOf(images[next])));
iv.setTag(tag);
}
else {
i--;
}
}
public static int getImageId(Context context, String imageName) {
return context.getResources().getIdentifier("id/" + imageName + "guess", null, context.getPackageName());
}
public static int getImageName(Context context, String imageName)
{
return context.getResources().getIdentifier("drawable/" + imageName + "guess", null, context.getPackageName());
}
You can use tags to achieve this:
When creating your ImageView (in code or in XML), define a tag:
android:tag = "tag"
OR
Object tag = (Object) new Integer(R.drawable.img1);
imageView.setTag(tag);
Then retrieve the tag before you need it by:
Object tag = imageView.getTag();
int drawableId = Integer.parseInt(tag.toString());
if( drawableId == R.drawable.img1 ) {
....
}
Good luck!
这篇关于检查上的ActionListener ImageView的资源,而不是的ImageView的id的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!