gpt4 book ai didi

java - 未在 onClickListener 上设置 boolean 值

转载 作者:行者123 更新时间:2023-12-01 16:59:18 25 4
gpt4 key购买 nike

我有两个类。我正在尝试根据用户是否单击复选框来更改 boolean 值。然后,根据该值是否为真/假(是否选中复选框),我想在 TextView 中显示特定文本。这是 MainActivity 类:

public class BoiseActivity extends ActionBarActivity {

CheckBox cb;
public boolean isTrue;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_boise);

cb = (CheckBox) findViewById(R.id.boiseCheckBox);

cb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
isTrue = true;
}
});

public boolean isTrue() {
if (isTrue == true) {
return true;
}
return false;
}

这是用户按下“提交”按钮后打开的新 Activity :

public class BoiseResults extends BoiseActivity {

TextView TV;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_boise_results);

TV = (TextView) findViewById(R.id.textView1);

if (isTrue() == true) {
TV.setText("checkbox checked");
}
}

BoiseActivity 类 onCreate-> onClick 方法中的 boolean 值永远不会更改。谁能看出这里出了什么问题吗?谢谢

最佳答案

除了关于你拿起一本关于 OOP 的书所说的话(来吧伙计们,每个人都从某个地方开始):isTrue你的BoiseActivity的实例变量将出现在其子类(class) BoiseResults因为它(BoiseResults)继承了isTrue来自BoiseActivity ,但它的值不会被设置,因此被解释为 false,正如 Vikram 指出的那样。

如何解决这个问题:

  • 使用onCheckedChangeListener对于 CheckBox
  • 将 boolean 值(“如果复选框已选中”)传递给第二个 Activity通过Intent您正在开始,评论中已给出有关如何执行此操作的链接
  • 问问自己是否 BoiseResults确实需要子类化 BoiseActivity (我不认为是这样,这只是另一个 Activity )
  • 摆脱你用 isTrue() 创建的所有 boolean 困惑方法返回 isTrue 的值变量
  • 重命名 BoiseResultsBoiseResultsActivity为了清楚起见

关于java - 未在 onClickListener 上设置 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28975726/

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