我有一个AlertDialog
通过DialogFragment.onCreateDialog()
. 该对话框有一个EditText
和两个按钮,确定和取消。单击“确定”按钮时,我需要检查EditText
: 如果内容错误,则不应关闭对话框。在 SO 上搜索我发现可以通过这种方式轻松实现此功能:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
view = getActivity().getLayoutInflater().inflate(AD_LAYOUT, null);
mEditText = (EditText) view.findViewById(AD_VIEW);
myAlertDialog = new AlertDialog.Builder(getActivity())
.setView(view)
.setTitle(getResources().getString(AD_TITLE))
.setPositiveButton(getResources().getString(AD_PB),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int buttonID) {
//Do nothing. We are going to override this method
}
})
.setNegativeButton(getResources().getString(AD_NB),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int buttonID) {
((MainActivity)getActivity()).doNegative(NewGalleryDlg.this);
}
})
.create();
ad = myAlertDlg;
ad.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
Button b = ad.getButton(AlertDialog.BUTTON_POSITIVE);
b.setOnClickListener(new View.OnClickListener(){
@Override public void onClick(View view) {
((MainActivity)getActivity())
.doPositive(NewGalleryDlg.this, mEditText);
}
});
}
});
return ad;
}
问题是我正在使用支持库 v4,但setOnShowListener()
需要 API 级别 8 或更高。有人可以给我一个替代方案吗?TIA