首页 > 解决方案 > SetSelected 在相对布局中的 5 个按钮之间

问题描述

我有 5 个按钮彼此RelativeLayout对齐。layout_centerHorizontal = true我在 a 中提到了不同的状态,它们维护不同的状态,drawable例如和。我的问题是如果我在 button1 上,. 该按钮具有完全焦点。现在,当我导航到 button2 并单击 button2 时,如何删除现有的并为 button2 调用 setSelected。pressedfocusedunfocusedonClickbutton1.setSelected = truesetSelected

标签: android

解决方案


这对我来说更像是一个逻辑问题,尝试自己解决未来的逻辑问题,以便成为一个更好的程序员。

无论如何,对我来说一个快速的解决方案是

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
       }
   }

}

推荐阅读