gpt4 book ai didi

java - 单击按钮取消选中所有复选框

转载 作者:行者123 更新时间:2023-12-01 14:27:50 25 4
gpt4 key购买 nike

我目前正在制作一个带有很多复选框(具体为 39 个)的应用程序,我想实现一个按钮,在单击时取消选中它们。我还没有对按钮做太多事情(到目前为止我只用它们来开始一个新的 Activity )所以我仍然不完全确定它们是如何工作的。经过一些研究后,这就是我想到的。尽管我有 39 个复选框,但为了保持简短,我只会在这段代码中粘贴一些复选框。

CheckBox cb1 = (CheckBox) findViewById(R.id.checkBox2);
CheckBox cb2 = (CheckBox) findViewById(R.id.checkBox3);
CheckBox cb3 = (CheckBox) findViewById(R.id.checkBox4);
public void onClick (View v){
switch (v.getId()) {
case R.id.button1:
cb1.setChecked(false);
cb2.setChecked(false);
cb3.setChecked(false);
}
}

日志猫:

06-12 06:45:09.922: E/AndroidRuntime(6623): FATAL EXCEPTION: main 
06-12 06:45:09.922: E/AndroidRuntime(6623): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.gw2legendary/com.example.gw2legendary.Bifrost}: java.lang.NullPointerException
06-12 06:45:09.922: E/AndroidRuntime(6623): Caused by: java.lang.NullPointerException

问题是,当我尝试添加此代码来打开它时,我的 Activity 就会崩溃。如果我从中删除此代码, Activity 就会正常启动。

最佳答案

所以您的代码失败的原因是:您将 CheckBox 变量声明为类字段,并且它们在 Activity 启动时初始化,因此 findViewById() 为所有这些变量返回 null。

快速修复:将所有这些复选框声明移至 onClick 方法内。尽管看起来您可能在点击之前在其他地方使用它们。

一个更好的潜在解决方案:与其尝试引用所有 39 个(!)复选框,不如只获取对容器的引用并遍历所有子项,检查如果它们是复选框,则取消选中它们。

我想说,39 个复选框似乎有点荒谬。

关于java - 单击按钮取消选中所有复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17057766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com