用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);
2016-03-19
?style加上parent="@android:style/Theme.Translucent">解決