をAlertDialog
介して実装していDialogFragment.onCreateDialog()
ます。ダイアログには、[ EditText
OK] と [キャンセル] の 1 つと 2 つのボタンがあります。[OK] ボタンがクリックされたら、の内容を確認する必要があります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 以上が必要なことです。誰かが私に代わりを与えることができますか?ティア