テキスト ボックスと 2 つのボタンを含むアラート ボックスを作成したいと考えています。で構成されるこのレイアウトをEditText
作成し、クラスを拡張するクラスを作成しましたDialogFragment
。を作成し、データベースonCreateDialog()
から入力を送信したいと考えました。EditText
データベースハンドラクラスもあります。show()
クラスのオブジェクトを作成し、ダイアログを表示する必要があるときはいつでも使用したいと考えています。
このアプローチは正しいですか、それとも以前のアプローチのようにオブジェクトを作成するのではなく、onCreateDialog()
拡張するクラスで作成した方がよいでしょうか?Activity
コード スニペットは次のとおりです。
public class AskDialog extends DialogFragment {
private String var = "";
EditText ask;
public void setVar(String var){
this.var = var;
}
@Override
public Dialog onCreateDialog(Bundle savedInstance){
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflator = getActivity().getLayoutInflater();
builder.setView(inflator.inflate(R.layout.ask, null));
builder.setTitle("Not Found").setMessage("XYZ is not found");
final EditText ask = new EditText(this); //Error
builder.setPositiveButton("Save", new OnClickListener(){
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
String ab = ask.getText().toString();
}
});
builder.setNegativeButton("Don't Know", new OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
return null;
}
}
Activity クラスで this のオブジェクトを作成し、その show(getFragment(), null) 関数を使用して、このクラスを使用したいと考えています。