用Dialog类创建dialog后报dialog空指针,用private AlertDialog.Builder builder;可以
报错:
private ImageView mVoice;
private TextView mLable;
private Context mContext;
private Dialog dialog;
/** * 构造方法 传入上下文 */
public DialogManager(Context context) {
this.mContext = context;
}
// 显示录音的对话框
public void showRecordingDialog() {
dialog = new Dialog(mContext, R.style.Theme_AudioDialog);
LayoutInflater inflater = LayoutInflater.from(mContext);
View view = inflater.inflate(R.layout.dialog_recorder, null);
mVoice = (ImageView) view.findViewById(R.id.id_recorder_dialog_voice);
mLable = (TextView) view.findViewById(R.id.id_recorder_dialog_label);
dialog.setContentView(view);
dialog.show();//报空指针
不报错:
private AlertDialog.Builder builder;
private ImageView mVoice;
private TextView mLable;
private Context mContext;
private Dialog dialog;// 用于取消AlertDialog.Builder
/** * 构造方法 传入上下文 */
public DialogManager(Context context) {
this.mContext = context;
}
// 显示录音的对话框
public void showRecordingDialog() {
builder = new AlertDialog.Builder(mContext, R.style.Theme_AudioDialog);
LayoutInflater inflater = LayoutInflater.from(mContext);
View view = inflater.inflate(R.layout.dialog_recorder, null);
mVoice = (ImageView) view.findViewById(R.id.id_recorder_dialog_voice);
mLable = (TextView) view.findViewById(R.id.id_recorder_dialog_label);
builder.setView(view);
builder.create();
dialog = builder.show();
Window w=dialog.getWindow();
WindowManager.LayoutParams lp =w.getAttributes();
//显示位置
lp.x=1;
lp.y=3;
w.setAttributes(lp);