android - SetSelected 在相对布局中的 5 个按钮之间
问题描述
我有 5 个按钮彼此RelativeLayout
对齐。layout_centerHorizontal = true
我在 a 中提到了不同的状态,它们维护不同的状态,drawable
例如和。我的问题是如果我在 button1 上,. 该按钮具有完全焦点。现在,当我导航到 button2 并单击 button2 时,如何删除现有的并为 button2 调用 setSelected。pressed
focused
unfocused
onClick
button1.setSelected = true
setSelected
解决方案
这对我来说更像是一个逻辑问题,尝试自己解决未来的逻辑问题,以便成为一个更好的程序员。
无论如何,对我来说一个快速的解决方案是
class HomeActivity : BaseActivity(HomeFragment()), View.OnClickListener {
private val buttonList = ArrayList<Int>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
buttonList.add(binding.button1.id)
binding.button1.setOnClickListener(this)
buttonList.add(binding.button2.id)
binding.button2.setOnClickListener(this)
buttonList.add(binding.button3.id)
binding.button3.setOnClickListener(this)
}
override fun onClick(v: View?) {
buttonList.forEach { buttonId ->
button.isSelected = buttonId == v?.id
}
}
}
推荐阅读
- jquery - 如何在表的一列中使用 JQuery 中的超链接
- cgal - 如何将路径转换为 CGAL 结构
- docker - 错误:连接到正在运行的容器 -Docker 远程容器时,在建立安全 TLS 连接之前客户端网络套接字断开连接
- laravel - 在 Laravel 7 的基本控制器中访问用户对象?
- android - 如何使用具有共享首选项的 android studio 在测验应用程序中保存单选按钮的已检查状态
- flutter - 你如何将互联网上的图像下载到 Flutter 中的文件中?
- arrays - 在结构中切片,不能在切片文字中使用 int64 类型作为 int
- string - 任何人都可以解释这个错误以及这个案例,比如为什么我不能等同于这两个值?
- java - 组织和应用程序级别的 Okta 多因素身份验证
- javascript - 在堆栈中反转 ABCD 的最小推送操作数是多少?