【问题标题】:android check box and radio group on custom dialog自定义对话框上的 android 复选框和单选组
【发布时间】:2013-06-25 21:16:06
【问题描述】:

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

每当我尝试阅读复选框应用程序时都会引发 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();
}

【问题讨论】:

    标签: android checkbox


    【解决方案1】:

    NullPointerException 因为您没有使用 dialog.findViewById() 实例化并为 CheckBox 设置 OnClickListener。如下放置:

     CheckBox chk1= (CheckBox)dialog.findViewById(R.id.chkbox1);
     chk1.setOnClickListener(new OnClickListener() {
    
       //do something here
      });
    

    【讨论】:

    • 我正在尝试将单选组添加到自定义对话框中。它在加载对话框时出现,但是如何在对话框中将动作列表添加到该单选组中。下面是我的自定义布局 xml。
    • 好的。没问题。将 Radiogroup 添加为 RadioGroup radGroup = (Radiogroup)dialog.findViewById(R.layout.<yourRadioGroup>)...
    【解决方案2】:

    变化:

    CheckBox chk1= (CheckBox) findViewById(R.id.chkbox1);
    

    到:

    CheckBox chk1= (CheckBox) dialog.findViewById(R.id.chkbox1);
    

    请记住,如果您只是使用findViewById(),那么您将调用它为您当前所在的Activity,但据我所知,您希望在R.layout.custom 中找到这个CheckBox设置为dialog

    我看到你正确地加载了dialogButton,所以你可能只是忘了对chk1 做同样的事情。

    【讨论】:

      【解决方案3】:

      当您为对话框填充布局后,您需要通过对话框访问它。但是您正在通过父视图访问它。无论如何只需通过dialog.findViewById(R.id.chkbox1)调用它

      【讨论】:

        【解决方案4】:

        我正在尝试将单选组添加到自定义对话框中。它是在加载对话框时出现的,但是如何在对话框中将动作列表添加到该单选组中……下面是我的自定义布局 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"
            />
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-24
          • 2016-02-11
          • 2012-11-08
          • 2011-09-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-09-16
          相关资源
          最近更新 更多