android - 如何在 if/else 语句中为 setImageResource 使用 Drawable?
问题描述
我是 androidstudio 的新手,想通过以下方式比较 imageView:
我有 2 个 imageView,两者都使用我在应用程序开始时命名为“blank”的可绘制对象,使用 if/else 我想将这些图像添加到我拥有的另一个可绘制对象中,我尝试了以下操作:
private ImageView equipament1;
private ImageView equipament2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_analise)
equipament1 = findViewById(R.id.equipamento1);
equipament2 = findViewById(R.id.equipamento2);
public void sentImg() {
if (equipament1.equals(R.drawable.blank)){
equipament1.setImageResource(R.drawable.reactor);
}
else if (equipament2.equals(R.drawable.blank)){
equipament2.setImageResource(R.drawable.reactor);
} else {finish();}
但它不起作用,该应用程序只是替换了第一个图像,如果我再次单击该按钮,则没有任何反应(此 if/else 在按钮内)。
我想检查第一个图像是否为空白,如果是,应用程序应该用图像“reactor”替换空白图像,或者,如果不是空白,应用程序应该移动到第二个空白图像,并替换它和这个继续更多2个空格。
我这样做是因为我正在构建一个类似于 LucidChart 的程序,您可以将设备放入应用程序中。
解决方案
问题是您第二次已经更改了比较器的值。
如果目标只是更改图像,则不需要 if/else。
private ImageView equipament1;
private ImageView equipament2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_analise)
equipament1 = findViewById(R.id.equipamento1);
equipament2 = findViewById(R.id.equipamento2);
public void sentImg() {
equipament1.setImageResource(R.drawable.reactor);
equipament2.setImageResource(R.drawable.reactor);
}
推荐阅读
- kubernetes - Kubernetes Ingress 路由不适用于正则表达式
- opencl - 了解随机写入全局内存的性能行为
- java - Java线程InterruptedException块未执行
- ios - 如何在swift中使背景视图透明但图像不透明
- laravel - Laravel 与 Bootstrap 4 混合
- javascript - 如何自动更新本地存储数据
- ansible - Ansible 标签 - 未调用任务
- python - 使用列表作为输入在 Python 中运行进程时出错
- reactjs - 为什么当我使用 .map 而不是硬编码来动态填充内容时,Material UI 选项卡停止工作?
- r - 将ggplot2图形导出到Word文档的最佳方法?