为什么我按 id XML 找不到图片
Why I can't find by id XML image
public class MainActivity extends AppCompatActivity {
ListView listView;
Button buttonForCP;
ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonForCP =(Button) findViewById(R.id.buttonForCP);
img = findViewById(R.drawable.ic_img);//this problem
// ||||||||||||||||||||||||||
buttonForCP.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
buttonForCP.setBackground(img);
}
});
}
由于某种原因无法读取 xml 图像编译器写入“类型 id 的预期资源”
我用谷歌搜索没有找到任何帮助
我假设 backButtonZer
是 Button
,您需要将 R.drawable.ic_img
替换为 R.id.backButtonZer
backButtonZer = findViewById(R.id.backButtonZer);
更新
要将背景设置为 Button
,您可以使用 setBackgroundResource
方法:
buttonForCP.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
buttonForCP.setBackgroundResource(R.drawable.ic_img);
}
});
此代码无效,因为 findViewById 在您的展开布局中通过 id 查找视图。但是您正在尝试查找可绘制资源 ID 并将其分配给一个毫无意义的 ImageView 对象。
ImageView img = findViewById(R.drawable.ic_img);
此外,对于这段代码,您还试图将 ImageView 设置为按钮背景,这也没有任何意义。您可以将 image/resource/drawable 设置为背景。不是 ImageView。
buttonForCP.setBackground(img);
你的问题有很多遗漏点,但也许你可以尝试这样的事情:
buttonForCP.setBackground(ContextCompat.getDrawable(context, R.drawable.ic_img);
public class MainActivity extends AppCompatActivity {
ListView listView;
Button buttonForCP;
ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonForCP =(Button) findViewById(R.id.buttonForCP);
img = findViewById(R.drawable.ic_img);//this problem
// ||||||||||||||||||||||||||
buttonForCP.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
buttonForCP.setBackground(img);
}
});
}
由于某种原因无法读取 xml 图像编译器写入“类型 id 的预期资源” 我用谷歌搜索没有找到任何帮助
我假设 backButtonZer
是 Button
,您需要将 R.drawable.ic_img
替换为 R.id.backButtonZer
backButtonZer = findViewById(R.id.backButtonZer);
更新
要将背景设置为 Button
,您可以使用 setBackgroundResource
方法:
buttonForCP.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
buttonForCP.setBackgroundResource(R.drawable.ic_img);
}
});
此代码无效,因为 findViewById 在您的展开布局中通过 id 查找视图。但是您正在尝试查找可绘制资源 ID 并将其分配给一个毫无意义的 ImageView 对象。
ImageView img = findViewById(R.drawable.ic_img);
此外,对于这段代码,您还试图将 ImageView 设置为按钮背景,这也没有任何意义。您可以将 image/resource/drawable 设置为背景。不是 ImageView。
buttonForCP.setBackground(img);
你的问题有很多遗漏点,但也许你可以尝试这样的事情:
buttonForCP.setBackground(ContextCompat.getDrawable(context, R.drawable.ic_img);