Android:如何将图像资源与 R.drawable.imagename 进行比较?

riz*_*lp1 5 java android listener imageview

我正在开发一个示例应用程序,其中我需要在 onClick 侦听器中获取图像视图的资源,并将其与我知道存在的图像源进行比较。如果资源相同,我想启动另一个意图。我现在面临的问题是访问 ImageView(以及它的资源 Id 整数)以与可绘制资源进行比较。

@Override
// should int be final ??
public View getView(final int position, View convertView, ViewGroup parent) {

    ImageView imageView;
    if (convertView == null) {  // if it's not recycled, initialize some attributes
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(8, 8, 8, 8);
    } else {
        imageView = (ImageView) convertView;
    }

    imageView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) { 
// This is not working and I need to find a way to solve this >>
                if (((ImageView)v).getResources().getInteger(0) == R.drawable.imageToCompare)
                {
                    // do nothing
                }
                else
                {
                    // do something         
                }
Run Code Online (Sandbox Code Playgroud)

Mic*_*ael 3

您无法从 .drawable 中获取可绘制的 id ImageView。但如果您从代码中设置它,您也可以将其存储在某个地方,例如标记字段中。看一下类似的问题:Who I Comparison an background Image resources TextView with a R.drawable.bg_image for switch