您好我写了简单的自定义对话框。它有几个复选框和一个提交按钮。
每当我尝试阅读复选框apllication时抛出Nullpointer异常..有人可以帮忙解决这个问题,下面是我的自定义dailog代码
public void onClick(View arg0) {
// custom dialog
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.custom);
dialog.setTitle("Title...");
CheckBox chk1= (CheckBox) findViewById(R.id.chkbox1);
Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(chk1.isChecked())
dialog.dismiss();
}
});
dialog.show();
}
答案 0 :(得分:1)
变化:
CheckBox chk1= (CheckBox) findViewById(R.id.chkbox1);
为:
CheckBox chk1= (CheckBox) dialog.findViewById(R.id.chkbox1);
请注意,如果您只是简单地使用findViewById()
,那么您就可以在Activity
中调用它,但据我所知,您希望找到这个CheckBox
中为R.layout.custom
设置的dialog
。
我发现你正确加载了dialogButton
,所以你可能只是忘了对chk1
做同样的事情。
答案 1 :(得分:1)
当您为对话框填充布局时,您需要通过对话框访问它。但是您通过父视图访问它。无论如何,只需通过dialog.findViewById(R.id.chkbox1)
答案 2 :(得分:1)
NullPointerException
因为您未使用dialog.findViewById()
进行实例化,并为CheckBox设置了OnClickListener
。如下所示:
CheckBox chk1= (CheckBox)dialog.findViewById(R.id.chkbox1);
chk1.setOnClickListener(new OnClickListener() {
//do something here
});
答案 3 :(得分:0)
我正在尝试将自动播放组添加到自定义对话框中..它是在加载对话框时出现的,但是如何将对话框中的操作列表添加到该无线电组..下面是我的自定义布局xml。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:theme="@android:style/Theme.Light">
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
/>
<CheckBox
android:id="@+id/chksmart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SMARTAPPLIANCE "
android:layout_below="@+id/editText"
/>
<CheckBox
android:id="@+id/meter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Device"
android:layout_below="@+id/chksmart"
/>
<RadioGroup
android:id="@+id/radiogroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/android:list"
android:textColor="@android:color/black" >
<RadioButton
android:id="@+id/radioGet"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="radioClickHandler1"
android:text="GET"
android:textColor="@android:color/background_dark" />
<RadioButton
android:id="@+id/radioPut"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="radioClickHandler1"
android:text="PUT"
android:textColor="@android:color/background_dark" />
<RadioButton
android:id="@+id/radioPost"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="radioClickHandler1"
android:text="POST"
android:textColor="@android:color/background_dark" />
<RadioButton
android:id="@+id/radioDelete"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="radioClickHandler1"
android:text="DELETE"
android:textColor="@android:color/background_dark" />
<RadioButton
android:id="@+id/radioevent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="radioClickHandler1"
android:text="ADDEVENT"
android:textColor="@android:color/background_dark" />
</RadioGroup>
<Button
android:id="@+id/dialogButtonOK"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" SUBMIT "
android:textColor="#00000f"
android:textSize="25px"
android:textStyle="bold"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_below="@+id/radiogroup"
/>