提问人:Noman khanbhai 提问时间:9/25/2019 更新时间:9/25/2019 访问量:89
无法在android中获取CheckBox的引用
Unable to get the reference of CheckBox in android
问:
我在活动布局中使用了 CheckBox。但我不知道为什么我没有得到 CheckBox 的引用。它每次都显示 NullPointerException。我在对话框片段中使用了另一个复选框,但它工作正常。我不知道NullPointerException的原因是什么。
这是xml代码
<CheckBox
android:id="@+id/ccb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="8dp"
android:text="Add Your Previous Amount\n with Current Amount "
android:textColor="@color/batteryChargedBlue"
android:textSize="13dp"
android:fontFamily="@font/caviardreams_bolditalic"
/>
这是我使用复选框并获取 NullPointerException 的 java 代码。
public class StartActivity extends AppCompatActivity {
//Declaring the CheckBox variable globally
CheckBox scb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
//Initializing in the onCreate() method
scb = (CheckBox)findViewById(R.id.ccb);
...
}
//using it in the button clicked method to check whether checkbox is checked or not
public void setInitialMonthlyAmount(View view) {
if(scb.isChecked()) { //Getting The NullPointerException Here Don't know why ??
System.out.println("Checkbox is checked");
//Code
}else {
//Code
}
}
}
我认为一切都是正确的。我使用相同的方式获取其他视图(如 TextViews、EditText 等)的引用,它们工作正常。我不知道这个复选框有什么问题。请帮忙!!
答:
0赞
Thalis Vilela
9/25/2019
#1
确保您正在致电您的活动!setContentView(R.layout.your_layout_with_checkbox);
onCreate
评论
0赞
Noman khanbhai
9/25/2019
我正在调用setContentView(R.layout.activity_start);。你的意思是我应该这样称呼它 setContentView(R.id.activity_start_with_checkbox): 或除此之外的东西。@ThalisVilela
1赞
Unaisul Hadi
9/25/2019
#2
你确定你是这样编码的 Activity 吗:?
public class StartActivity extends AppCompatActivity {
CheckBox scb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
scb = (CheckBox)findViewById(R.id.ccb);
setInitialMonthlyAmount(view)
}
public void setInitialMonthlyAmount(View view) {
if(scb.isChecked()) {
System.out.println("Checkbox is checked");
//Code
}else {
//Code
}
}
评论
0赞
Noman khanbhai
9/25/2019
我没有在onCreateMethod()中调用setInitialMonthlyAmount(view)@unaisulhadi
0赞
Noman khanbhai
9/25/2019
setInitialMonthlyAmount(View view) 该方法在点击按钮时自动运行@unaisulhadi
0赞
Noman khanbhai
9/25/2019
我在 xml 中使用了 onClick() 方法,这解决了我的problem.@unaisulhadi
0赞
Unaisul Hadi
9/25/2019
还行。。。祝您编码愉快。!!
评论
.setInitialMonthlyAmount()
scb = (CheckBox)findViewById(R.id.ccb);