Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使一个选项褪色,但仍然可以在Android Studio上单击?_Android_Checkbox_Android Studio_Click_Fade - Fatal编程技术网

如何使一个选项褪色,但仍然可以在Android Studio上单击?

如何使一个选项褪色,但仍然可以在Android Studio上单击?,android,checkbox,android-studio,click,fade,Android,Checkbox,Android Studio,Click,Fade,我现在有两个复选框,当一个被点击时,另一个自动取消选中。我想保留这一点,但是,如果用户决定改变主意,未经检查的一个会变成褪色的白色,但仍然可以单击和阅读 这是我的当前代码: chk1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButto

我现在有两个复选框,当一个被点击时,另一个自动取消选中。我想保留这一点,但是,如果用户决定改变主意,未经检查的一个会变成褪色的白色,但仍然可以单击和阅读

这是我的当前代码:

 chk1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
            if (CheckBox.isChecked(chk1)) {
            chk2.setChecked(false);
            chk1.setChecked(b);
            chk2.setAlpha(0.5f);
        }
    });

    chk2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
            if (CheckBox.isChecked(chk2)) {
            chk1.setChecked(false);
            chk2.setChecked(b);
            chk1.setAlpha(0.5f);
        }
    });

当复选框处于选中和未选中状态时,可以对其使用不同的图标。还要更改文本的颜色,使其看起来褪色

要帮助更改复选框图标,这很有帮助

您可以使用更改复选框图标和文本颜色, chk2.setTextColor(getResources().getColor(R.color.gray)); chk2.退刀可拉拔(R.可拉拔.未选中)

chk2.setAlpha(0.5f)
会使它看起来褪色

chk1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
            chk2.setChecked(false);
            chk1.setChecked(b);
            chk2.setAlpha(0.5f);
            chk1.setAlpha(1f);
        }
    });

chk2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
        chk1.setChecked(false);
        chk2.setChecked(b);
        chk1.setAlpha(0.5f);
        chk2.setAlpha(1f);
    }
});

如果我只想在单击另一个复选框时更改它,该如何工作?如果我没弄错的话,当你点击chkbox 1时,你想淡出并取消选中chkbox 2吗?上面的几行将帮助你做同样的事情。是的,有没有办法把它添加到淡入淡出,因为我已经有了取消选中的部分。我试着为b插入代码,但是我遇到了一个错误。我在开始的帖子中更新了我的代码,它可以工作,但是一旦褪色,它就不会回来了。所以,如果我选中box1,box2将褪色,但是如果我单击box2,box1确实会褪色,但是box2仍然会褪色,尽管单击了!更新后的答案,如果有效,请记住将答案标记为正确。:)事实上,我还想知道其他一些事情。如果选中chk1,chk2将褪色,但是如果我取消选中chk1,chk2将保持褪色,有没有办法解决这个问题?@ChrisChen这就是
boolean b
方便的地方,您可以在
onCheckedChanged
中编写
If
语句,并检查
chk1
是否未选中,如果是这样,您可以将alpha重置为
1f
。我编辑了开场白并添加了if(CheckBox.isChecked(chk1)){,但是,我在isChecked下面看到一个红色的斜线,表示“非静态方法‘isChecked’不能从静态上下文引用。”