Java 我不知道';我不理解使用新参数单击复选框的模式

Java 我不知道';我不理解使用新参数单击复选框的模式,java,android,listener,oncheckedchanged,Java,Android,Listener,Oncheckedchanged,以下代码用于切换复选框,以使用户能够查看其密码: passwordCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (!isChecked) {

以下代码用于切换
复选框
,以使用户能够查看其密码:

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的复选框,我会在单击该复选框后立即将侦听器设置为该复选框,以便(取消)切换该复选框,如果未选中,passwordEditText将不会显示为字符,如果选中,密码将显示为字符。如果我的假设有误,请纠正我

我不理解这段代码的模式,如果应用程序将参数“
isChecked
”理解为一个新变量(?),那么该参数“
isChecked
”就等于“True”(同时它被理解为用户输入)

这是答案: @hellohello该构造称为匿名类。一旦您的代码没有调用checkedchanged,只有当用户与复选框交互时,Android内部代码才会调用它克里斯汀·斯特伦费尔


谢谢你的其他评论

isChecked
是一个参数,当check listener被激发时,操作系统会提供这个参数,它是否更清晰?你能给我提供一个源链接(或解释)让我更好地理解吗?我不确定我是否在关注你的问题。这是构造
!是否检查您不明白?这只是
isChecked!=true
我不明白的是,例如:private void example(inta,intb){//TODO}a和b都是参数内的变量,那么我如何使用它来知道用户输入了什么?类似地,isChecked与(在本例中)a和b相同,因此我无法检查用户是如何切换复选框的,因此我如何在代码中使用它,并且它工作得很好?这就是为什么我要求解释isChecked as variable in parameter抱歉,我仍然不理解:)当用户与复选框(ui元素)交互时,Android(操作系统)将使用复选框的当前状态调用您的代码,参数
isChecked
设置为当前状态并传递给您