2011-03-13 91 views
0

我在alertdialog中有这个复选框。当我尝试检查复选框的状态时,应用程序强制关闭。任何想法为什么?android复选框问题

LayoutInflater factory = LayoutInflater.from(NewActivity.this); 
     final View textDisplayView = factory.inflate(R.layout.nearestlocs, null); 
     final AlertDialog.Builder newAlert = new AlertDialog.Builder(NewActivity.this); 
     newAlert.setView(textDisplayView); 

     final CheckBox checkBoxLab = (CheckBox) findViewById(R.id.checkboxlab); 
newAlert.setPositiveButton("Display on Map", 
       new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int whichButton) { 

       if(checkBoxLab.isChecked()){ 
        libDisplayFlag = true; 
       } 

错误日志

03-13 08:01:58.273: ERROR/AndroidRuntime(6188): Uncaught handler: thread main exiting due to uncaught exception 
    03-13 08:01:58.292: ERROR/AndroidRuntime(6188): java.lang.NullPointerException 
    03-13 08:01:58.292: ERROR/AndroidRuntime(6188):  at com.isproj3.NewActivity$3.onClick(NewActivity.java:158) 
    03-13 08:01:58.292: ERROR/AndroidRuntime(6188):  at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158) 
    03-13 08:01:58.292: ERROR/AndroidRuntime(6188):  at android.os.Handler.dispatchMessage(Handler.java:99) 

XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout android:orientation="horizontal" 
     android:gravity="center" android:layout_width="fill_parent" 
     android:layout_height="fill_parent" android:layout_weight="1"> 
     <CheckBox android:id="@+id/checkboxlib" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:text="Library" 
      android:gravity="left" android:textColor="#FF0000" 
      android:paddingBottom="5px" android:textSize="07pt" android:checked="true" /> 
     <TextView android:id="@+id/librarytext" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:gravity="center" 
      android:paddingBottom="5px" android:textSize="8pt" /> 
    </LinearLayout> 
</LinearLayout> 

回答

1

我认为问题是,你必须指定哪个视图找到ID

试试这个

final CheckBox checkBoxLab = 
        (CheckBox) textDisplayView.findViewById(R.id.checkboxlab); 
+1

ah..that工作和神..连续第二次我是makin这个错误..谢谢 – 2011-03-13 08:28:20

0

xml实际设置为contenView吗? (因此使用setContetnView()与XML的代码在什么地方)

否则这样的:

final CheckBox checkBoxLab = (CheckBox) findViewById(R.id.checkboxlab); 

将使checkBoxLab一个空指针(null),你会得到一个NullPointerException的原因,somehwere下方的发布错误。