无法解析 'View' 中的方法 'setImageResource'
package com.example.radiobutton;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
public class imageView extends AppCompatActivity {
View img;
Button btn1,btn2;
private int[] imgs={
R.drawable.a,
R.drawable.b,
R.drawable.c,
R.drawable.d,
R.drawable.e,
};
int index=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_view);
img = findViewById(R.id.img);
btn1 = findViewById(R.id.btn1);
btn2 = findViewById(R.id.btn2);
btn1.setOnClickListener(new mClick());
btn2.setOnClickListener(new mClick());
}
class mClick implements View.OnClickListener
{
public void onClick(View v)
{
if(v == btn1)
{
if(index>0&&indexImageResource(imgs[index]);
}else
{
index =imgs.length+1;
}
}
if(v == btn1)
{
if(index>0&&index1)
{
index++;
img.setImageResource(imgs[index]);
}else {index =imgs.length-1;}
}
}
}
}
第一个错误信息是:
无法解析 'View' 中的方法 'setImageResource'
这个错误信息表明在代码中,尝试使用了View类中不存在的方法setImageResource()。根据代码可以看到,在onClick()方法里面调用了img.setImageResource(imgs[index]),而img类型为View,View并没有setImageResource()方法。
解决方法是将img变量的类型从View更改为ImageView,因为setImageResource()方法是ImageView类中的。修改代码如下:
java
public class imageView extends AppCompatActivity {
ImageView img; // 修改这里的类型为ImageView
Button btn1,btn2;
private int[] imgs={
R.drawable.a,
R.drawable.b,
R.drawable.c,
R.drawable.d,
R.drawable.e,
};
int index=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_view);
img = findViewById(R.id.img);
btn1 = findViewById(R.id.btn1);
btn2 = findViewById(R.id.btn2);
btn1.setOnClickListener(new mClick());
btn2.setOnClickListener(new mClick());
}
class mClick implements View.OnClickListener {
public void onClick(View v) {
if(v == btn1) {
if(index>0&&index<imgs.length) {
index--;
img.setImageResource(imgs[index]);
} else {
index =imgs.length+1;
}
}
if(v == btn2) { // 修改这里的按钮编号
if(index>0&&index<imgs.length-1) {
index++;
img.setImageResource(imgs[index]);
} else {
index =imgs.length-1;
}
}
}
}
}
注意,另外还需要将activity_image_view.xml文件中img控件的类型也改为ImageView,以便findViewById()方法能够正确地找到该控件。