Java 使用阵列在ImageView上随机生成图像

Java 使用阵列在ImageView上随机生成图像,java,android,arrays,android-studio-2.2,Java,Android,Arrays,Android Studio 2.2,我正在尝试创建一个数组,然后在ImageView上生成一个随机图像,但我的代码有一个问题。。。 setBackgroundResource生成错误,消息android studio is无法解析方法“setBackgroundResource(int)”我的代码是: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setCont

我正在尝试创建一个数组,然后在ImageView上生成一个随机图像,但我的代码有一个问题。。。
setBackgroundResource
生成错误,消息android studio is
无法解析方法“setBackgroundResource(int)”
我的代码是:

@Override 
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button btn=(Button)findViewById(R.id.btn); 
    final RelativeLayout background = (RelativeLayout) findViewById(R.id.back); 
    Resources res = getResources(); 
    final TypedArray myImages = res.obtainTypedArray(R.array.myImages); 
    btn.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
            final Random random = new Random(); 
            int randomInt = random.nextInt(myImages.length()); 
            int drawableID = myImages.getResourceId(randomInt, -1); 
            background.setBackgroundResource(drawableID); 
        } 
    }); 
}

因为您是在不同的上下文中访问数组,所以应该将数据从类型化数组中提取到列表(或数组)中,并将其存储为成员变量

private List<Integer> myImages;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button btn=(Button)findViewById(R.id.btn);
    final RelativeLayout background = (RelativeLayout) findViewById(R.id.back);
    myImages = getResourceList(R.array.myImages);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final Random random = new Random();
            int randomInt = random.nextInt(myImages.size());
            int drawableID = myImages.get(randomInt);
            background.setBackgroundResource(drawableID);
        }
    });
}

public List<Integer> getResourceList(int arrayId){
    TypedArray ta = getResources().obtainTypedArray(arrayId);
    int n = ta.length();
    List<Integer> resourceList = new ArrayList<>();
    for (int i = 0; i < n; i++) {
        int id = ta.getResourceId(i, 0);
        resourceList.add(id);
    }
    ta.recycle();

    return resourceList;
}
私有列表myImages;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
按钮btn=(按钮)findViewById(R.id.btn);
最终RelativeLayout背景=(RelativeLayout)findViewById(R.id.back);
myImages=getResourceList(R.array.myImages);
btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
最终随机数=新随机数();
int randomInt=random.nextInt(myImages.size());
int-drawableID=myImages.get(randomInt);
背景:setBackgroundResource(drawableID);
}
});
}
公共列表getResourceList(int-arrayId){
TypedArray ta=getResources().obtainTypedArray(arrayId);
int n=ta.length();
List resourceList=新的ArrayList();
对于(int i=0;i