Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java setImageResource上的编号图像_Java_Android_Imageview - Fatal编程技术网

Java setImageResource上的编号图像

Java setImageResource上的编号图像,java,android,imageview,Java,Android,Imageview,我正在开发一款Android应用程序,代码如下: int digit = 0; imageButton = (ImageView)findViewById(R.id.btn1); numberedImage = (ImageView)findViewById(R.id.Digit1); imageButton.setOnClickListener(new OnClickListener() { public void onClick(View v) {

我正在开发一款Android应用程序,代码如下:

int digit = 0;
imageButton = (ImageView)findViewById(R.id.btn1);
numberedImage = (ImageView)findViewById(R.id.Digit1);

imageButton.setOnClickListener(new OnClickListener()
{
    public void onClick(View v)
        {
             digit++;
             numberedImage.setImageResource(R.drawable.number + ((digit) + 1));
        }
});
在一个名为
number1
number2
的可绘图文件夹中,还有一些图像,等等。。。 这段代码工作得很好,然后突然,它不再工作了

我希望
ImageView
每次点击都能更改图像,而让我完全困惑的是,这段代码运行得非常好(尽管在某种程度上可能是错误的,我不是程序员),突然之间,它不再是了

之后,我还尝试使用数组和循环,但遇到了相同的错误:

“数字无法解析或不是字段”


这以前不是问题。

你有些误解。但可能幸运(或不幸)的是,您的代码给了您一些成功的结果,而您的误解更加坚定

ImageView.setImageResource
将资源id作为参数。不是图像名称。因此,当您向资源id添加一个数字时,它将设置下一个id的图像。由于图像的名称是连续的,因此id也是连续的,这就是为什么您获得了成功的结果。但这并不能保证你会一直做到这一点

我猜之前它是有效的,因为在您的资源中有一个名为number的图像。但现在它被移除了

建议的解决方案

Resources res = getResources();
String mDrawableName = "number" + digit + 1; // be sure those exist
int resID = res.getIdentifier(mDrawableName , "drawable", getPackageName()); numberedImage.setImageResource(resId);
请使用

for(int i=0;i<imageCount;i++){
    int imageResId = getResources().getIdentifier("image" + i, "id", YourActivity.this.getPackageName());
    numberedImage.setImageResource(imageResId);
}

for(inti=0;iPerfect!非常感谢。=)