在Android中设置cardview背景逻辑

时间:2018-07-17 12:32:10

标签: android kotlin background-color android-cardview

我想在一个cardview点击事件中调用它的背景色更改。但是我一次只希望更改一次cardview的颜色,这意味着我单击 1st cardview,颜色更改为黄色,但是当我单击 2nd cardview将颜色更改为黄色,将所有卡片组的颜色更改为白色。

这是我的代码:-

btnOpt1.setOnClickListener {
        btnOpt1.setCardBackgroundColor(Color.parseColor("#fcfca9"))
    }

    btnOpt2.setOnClickListener {
        btnOpt2.setCardBackgroundColor(Color.parseColor("#fcfca9"))
    }

    btnOpt3.setOnClickListener {
        btnOpt3.setCardBackgroundColor(Color.parseColor("#fcfca9"))
    }

    btnOpt4.setOnClickListener {
        btnOpt4.setCardBackgroundColor(Color.parseColor("#fcfca9"))
    }

    btnOpt5.setOnClickListener {
        btnOpt5.setCardBackgroundColor(Color.parseColor("##fcfca9"))
    }

enter image description here

2 个答案:

答案 0 :(得分:2)

创建方法并为选定和未选定的视图传递视图

       btnOpt1.setOnClickListener {
          clickCardView(btnOpt1)

        }

创建方法并从所有点击监听器中调用

    private void clickCardView(View btnView){
        btnOpt1.setCardBackgroundColor(Color.parseColor("#ffffff"));
        btnOpt2.setCardBackgroundColor(Color.parseColor("#ffffff"));
        btnOpt3.setCardBackgroundColor(Color.parseColor("#ffffff"));
        btnOpt4.setCardBackgroundColor(Color.parseColor("#ffffff"));

//// main logic is here

    btnView.setCardBackgroundColor(Color.parseColor("#fcfca9"));
    }

答案 1 :(得分:0)

单击按钮后,像这样其余按钮更改白色

btnOpt1.setOnClickListener {
    btnOpt1.setCardBackgroundColor(Color.parseColor("#fcfca9"));
    btnOpt2.setCardBackgroundColor(Color.parseColor("#ffffff"));
    btnOpt3.setCardBackgroundColor(Color.parseColor("#ffffff"));
    btnOpt4.setCardBackgroundColor(Color.parseColor("#ffffff"));
}