检查上的ActionListener ImageView的资源,而不是的ImageView的id [英] Checking imageview resource on actionlistener rather than the id of the imageview

查看:199
本文介绍了检查上的ActionListener ImageView的资源,而不是的ImageView的id的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆