出于某种原因,我得到了这个布尔值的空对象引用,我不知道为什么。我不明白为什么布尔值返回空对象引用
这是活动代码
package com.spizer.mizer2;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;
public class ProblemSelector extends AppCompatActivity {
public Boolean AddProb;
public Boolean SubProb;
public Boolean MultiProb;
public Boolean DivisProb;
public int ANum = 0;
public int SNum;
public int MNum;
public int DNum;
//ProblemSelector PS = new ProblemSelector();
CheckBox checkbox1, checkbox2, checkbox3, checkbox4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_problem_selector);
checkbox1 = (CheckBox) findViewById(R.id.checkBox1);
checkbox2 = (CheckBox) findViewById(R.id.checkBox2);
checkbox3 = (CheckBox) findViewById(R.id.checkBox3);
checkbox4 = (CheckBox) findViewById(R.id.checkBox4);
checkbox1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (b) {
AddProb = true;
Toast.makeText(getBaseContext(), "Add: True", Toast.LENGTH_SHORT).show();
} else {
AddProb = false;
Toast.makeText(getBaseContext(), "Add: False", Toast.LENGTH_SHORT).show();
}
}
});
checkbox2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (b) {
SubProb = true;
if(AddProb == false) {
SNum = 0;
}
else if(AddProb == true) {
SNum = 1;
}
} else {
SubProb = false;
}
}
});
checkbox3.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (b) {
MultiProb = true;
if(AddProb == false && SubProb == false) {
MNum = 0;
}
else if(AddProb == true && SubProb == false || AddProb == false && SubProb == true) {
MNum = 1;
}
else if(AddProb == true && SubProb == true) {
MNum = 2;
}
} else {
MultiProb = false;
}
}
});
checkbox4.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (b) {
DivisProb = true;
if(AddProb == false && SubProb == false && MultiProb == false) {
DNum = 0;
}
else if(AddProb == true && SubProb == false && MultiProb == false || AddProb == false && SubProb == true && MultiProb == false || AddProb == false && SubProb == false && MultiProb == true) {
DNum = 1;
}
else if(AddProb == true && SubProb == true && MultiProb == false || AddProb == false && SubProb == true && MultiProb == true || AddProb == true && SubProb == false && MultiProb == true) {
DNum = 2;
}
else if(AddProb == true && SubProb == true && MultiProb == true) {
DNum = 3;
}
} else {
DivisProb = false;
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_problem_selector, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/** this is called when the user hits the continue button **/
public void DifficultyMenu(View view) {
Intent DifficultyView = new Intent(this, DifficultyMenu.class);
//DifficultyView.putExtra("addProb", PS.AddProb);
//DifficultyView.putExtra("subProb", PS.SubProb);
//DifficultyView.putExtra("multiProb", PS.MultiProb);
//DifficultyView.putExtra("divisProb", PS.DivisProb);
startActivity(DifficultyView);
}
}
这是发生在第101行和第75行的完整错误日志
09-21 11:26:24.671 5078-5078/com.spizer.mizer2 E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.spizer.mizer2, PID: 5078
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Boolean.booleanValue()' on a null object reference
at com.spizer.mizer2.ProblemSelector$3.onCheckedChanged(ProblemSelector.java:75)
at android.widget.CompoundButton.setChecked(CompoundButton.java:161)
at android.widget.CompoundButton.toggle(CompoundButton.java:115)
at android.widget.CompoundButton.performClick(CompoundButton.java:127)
at android.view.View$PerformClick.run(View.java:20916)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5972)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
您应该使用布尔基元数据类型,而不是布尔类对象(注意布尔中的小b),什么时候应该使用布尔的空值?
此外,如果你真的想使用布尔对象,你应该使用equals()来比较值
问题内容: 如何轻松计算特定列所在的行数和特定列所在的行数? 我无法(或可以?)运行带有count()的查询,因为我将此计数嵌入到了having()子句中,例如: 但是通过上述方法,该函数计算了不等式两侧的每一行。 我尝试过这样的事情 但我得到一个错误 函数if(布尔值,整数,整数)不存在 (似乎它在postgresql中不存在)。 如何轻松计算column为true和false的行数? 问题答案
我正在尝试编译和部署neo4j-connector。 neo4j-connector-impl中的两个类(和)具有以下注释: 我可以想出一些方法(例如,添加一个方法),但这感觉不对:这段代码自一年前提交以来一直未变,所以为什么它不适合我呢?这里可能出了什么问题?
默认情况下,布尔值在Ultragrid上的单元格中显示为选中(true)或未选中(false)的复选框。有没有一种方法可以简单地将它显示为文本,比如“true”或“false”,0或1,甚至“yes”或“no”?我只是想显示布尔值。网格上的复选框给用户一种错误的印象,即他们可以通过尝试选中或取消选中复选框来修改数据。
问题内容: 我们将Findbugs配置为通过Maven在我们的Jenkins上运行。 除其他外,它在以下代码行上抱怨SE_BAD_FIELD: 此错误的说明说 Se:可序列化类(SE_BAD_FIELD)中的非瞬态不可序列化实例字段 该Serializable类定义了一个非基本实例字段,该实例字段既不是临时的,Serializable的也不是java.lang.Object,并且似乎没有实现Ext
我有“删除字面上的”假“布尔值”声纳错误无状态==false。我该怎么修好它?
我试图使用ValidateSet和一个布尔参数,但我无法使它像预期的那样工作。 复制该问题的示例: 我尝试将ValidateSet更改为,选项卡完成按预期工作,但是参数验证仍然失败,因为参数需要字符串和。 我可以将ValidateSet更改为并使其按我所期望的方式运行,但我发现对于完成布尔参数而言,和的用户体验比和要差。 当选择时,函数的预期输出应为;当选择时,函数的预期输出应为。 我在代码中实现