1

以下代码用于切换CheckBox,以使用户能够看到他的密码:

passwordCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

    @Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

        if (!isChecked) {
            passwordEditText.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD);
            passwordConfirmEditText.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD);
        } else {
            passwordEditText.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
            passwordConfirmEditText.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
        }
    }
});

这是我从上面了解到的:有一个名为 passwordCheckBox 的 CheckBox,我会在单击它后立即为 CheckBox 设置一个侦听器,以便(取消)切换 CheckBox,如果未选中,passwordEditText 不会出现作为字符,如果它是 Checked 密码将显示为字符。如果我的假设有误,请纠正我。

我不明白这段代码的模式,isChecked应该是一个新变量(?)的参数“”如何isChecked被等于“真”的应用程序理解(同时它被理解为用户输入)

4

1 回答 1

1

这就是答案:@hellohello 该构造称为匿名类。您的代码不会调用 OnCheckedChanged,它仅在用户与复选框交互时由 Android 内部代码调用。——克里斯蒂安·斯特伦弗

感谢其他评论

于 2017-01-01T11:36:51.233 回答