自定义对话框上的android复选框和单选按钮组

时间:2013-06-25 11:33:14

标签: android checkbox

您好我写了简单的自定义对话框。它有几个复选框和一个提交按钮。

每当我尝试阅读复选框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();
}

4 个答案:

答案 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"
    />