我有一个Checkbox
,在选中或未选中String
时设置Checkbox
的值。但是我的String
返回一个空值。我已在Public class
的{{1}}内声明了该字符串。为什么它返回null?
我希望将字符串插入数据库FYI。
Activity
答案 0 :(得分:1)
因为你还没有初始化LabText和LecText。 Toast消息是您活动生命周期的一部分。这意味着,无论您是否单击复选框,它们都将被执行。恰好在执行时,LabText和LecText为空。
解决方案是初始化它们:
String LabText = "", LecText= "";
如果您希望在单击复选框时显示Toast,请放置:
Toast.makeText(this,LabText, Toast.LENGTH_SHORT).show();
Toast.makeText(this,LecText, Toast.LENGTH_SHORT).show();
在OnCheckedChangeListeners
内。
编辑代码:
Lab = (CheckBox)findViewById(R.id.LabCheck);
Lec = (CheckBox)findViewById(R.id.RoomCheck);
if(Lab.isChecked()) {
LabText = "withlab";
} else {
LabText = "without";
}
if (Lec.isChecked()) {
LecText = "corner";
} else {
LecText = "notcorner";
}
Toast.makeText(this,LabText, Toast.LENGTH_SHORT).show();
Toast.makeText(this,LecText, Toast.LENGTH_SHORT).show();
答案 1 :(得分:0)
根据您的期望完成工作代码。据我了解您的问题。
public class MainActivity extends ActionBarActivity {
CheckBox Lab,Lec;
String LabText="";
String LecText="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Lab = (CheckBox)findViewById(R.id.LabCheck);
Lec = (CheckBox)findViewById(R.id.RoomCheck);
if(Lab.isChecked()) {
LabText = "withlab";
} else {
LabText = "without";
}
if (Lec.isChecked()) {
LecText = "corner";
} else {
LecText = "notcorner";
}
Toast toast1 = Toast.makeText(getApplicationContext(),
LabText, Toast.LENGTH_SHORT);
toast1.show();
Toast toast2 = Toast.makeText(getApplicationContext(),
LecText, Toast.LENGTH_SHORT);
toast2.show();
}
}
如果你还在,请告诉我。面对问题