启动自定义对话框

| 在创建自定义对话框时,我一直遵循Android文档。当我单击启动我的自定义对话框的按钮时,该应用程序开始运行。崩溃。我如何开始对此进行故障排除? 对话框:
<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\" android:id=\"@+id/relativeLayout1\" android:gravity=\"center_vertical\" android:layout_height=\"wrap_content\" android:layout_width=\"fill_parent\">
<CheckBox android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:text=\"@string/chkBlueTooth\" android:id=\"@+id/chkBlueTooth\" android:layout_below=\"@+id/chkAudio\" android:layout_alignLeft=\"@+id/chkAudio\"></CheckBox>
<Button android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:layout_below=\"@+id/chkBlueTooth\" android:layout_alignLeft=\"@+id/chkBlueTooth\" android:id=\"@+id/btnOK\" android:text=\"@string/btnOK\"></Button>
<CheckBox android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:text=\"@string/chkNetwork\" android:id=\"@+id/chkNetwork\" android:layout_above=\"@+id/chkBlueTooth\" android:layout_toRightOf=\"@+id/chkBlueTooth\"></CheckBox>
<CheckBox android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:text=\"@string/chkWifi\" android:id=\"@+id/chkWifi\" android:layout_below=\"@+id/chkNetwork\" android:layout_alignLeft=\"@+id/chkNetwork\" android:layout_alignRight=\"@+id/chkNetwork\"></CheckBox>
<CheckBox android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:text=\"@string/chkAudio\" android:id=\"@+id/chkAudio\" android:layout_below=\"@+id/txtChoose\" android:layout_alignLeft=\"@+id/txtChoose\"></CheckBox>
</RelativeLayout>
对话框的代码:     静态最终int TIME_DIALOG_ID = 0;     静态最终int POWER_OFF_OPTIONS = 1; @Override         受保护的对话框onCreateDialog(int id){             对话对话框;             开关(id){             情况TIME_DIALOG_ID:                 返回新的TimePickerDialog(this,                         mTimeSetListener,mHour24,mMinute,false);
        case POWER_OFF_OPTIONS:
            AlertDialog.Builder builder;
            AlertDialog alertDialog;

            Context mContext = getApplicationContext();
            LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
            View layout = inflater.inflate(R.layout.options,
                    (ViewGroup)findViewById(R.id.relativeLayout1));
            //Capture view elements
            mChkAudio = (CheckBox) findViewById(R.id.chkAudio);
            mChkBluetooth = (CheckBox) findViewById(R.id.chkBlueTooth);
            mChkNetwork = (CheckBox) findViewById(R.id.chkNetwork);
            mChkWifi = (CheckBox) findViewById(R.id.chkWifi);
            mBtnOK = (Button) findViewById(R.id.btnOK);
            mBtnOK.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                  DismissPowerOptions();
                    }
            }); 
            builder = new AlertDialog.Builder(mContext);
            builder.setView(layout);
            alertDialog = builder.create();
            //return builder;
        default:
            dialog = null;
        }
        return dialog;
    }
显示对话框并使应用崩溃的按钮:
  mBtnPowerOffOptions.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            //stuff for Options dialog
            showDialog(POWER_OFF_OPTIONS);
        }
    });
    
已邀请:
您在错误的对象上调用findViewById;父视图(或活动)。 在builder.setView(...)之后             AlertDialog myDialog = builder.create(); 现在您可以调用findViewById             //捕获视图元素             mChkAudio =(CheckBox)myDialog.findViewById(R.id.chkAudio);               。               。               。     

要回复问题请先登录注册