android - 如何检查哪个图像是按钮的源图像并在每次单击 Kotlin 中的按钮时更改它
问题描述
我想要做的是,每次按下按钮时都更改源图像。假设现在源图像是“a”,当我按下按钮时,我希望它是“b”,当我再次按下它时,我希望它再次变回“a”。
我有此代码可以更改一次图像,但我无法检查当前的源图像,因此我无法将其更改回之前的图像。
注意:我正在使用FloatingActionButton
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentDashboardBinding.inflate(inflater, container, false)
binding.fbDashboard.setOnClickListener {
fb_dashboard.setImageResource(R.drawable.ic_grid_view)
}
return binding.root
}
解决方案
您可以将视图的标签设置为当前正在显示的图像资源 id,然后使用标签的当前值来选择要显示的下一个图像:
val imageId = when (binding.fbDashboard.tag) {
R.drawable.foo -> R.drawable.bar
R.drawable.bar -> R.drawable.baz
...
else -> R.drawable.foo
}
binding.fbDashboard.setImageResource(imageId)
binding.fbDashboard.tag = imageId
推荐阅读
- sparql - 用于 sparql 端点的 Python / rdflib HTTP 服务器
- r - 如何在 R 中使用 Lek 的配置文件进行敏感性分析?
- powershell - 纠缠:无法访问父范围变量
- php - PHP 调用未定义函数 getLine()
- c++ - std::shared_mutex 不与执行 lock_shared() 的线程一起缩放
- python - 用其他列数据的平均值在熊猫中创建一个新列
- autodesk-forge - 在 Forge Viewer 中使用 restoreState 时如何删除所有剖切面
- javascript - 为什么我的 for 循环在我的条件之前退出
- xcode - 时间配置文件中特定方法的 CPU 使用情况图
- javascript - 我的结果不断增加,每次做出新选择时,如何用新结果替换当前结果?