android中创建AlertBox方法的问题

android中创建AlertBox方法的问题,android,dialog,android-alertdialog,Android,Dialog,Android Alertdialog,我想创建一个警报框,其中有一个文本框和两个按钮。我为此创建了一个由EditText组成的布局,并创建了一个扩展DialogFragment类的类。我已经创建了onCreateDialog(),希望将EditText中的输入发送到数据库。我也有databasehandler类。现在,我想创建该类的一个对象,并在需要显示对话框时使用show() 这种方法正确吗?或者如果我在扩展活动的类中创建onCreateDialog(),而不是像前面的方法那样创建对象,效果会更好吗 代码片段是: 公共类AskDi

我想创建一个警报框,其中有一个文本框和两个按钮。我为此创建了一个由
EditText
组成的布局,并创建了一个扩展
DialogFragment
类的类。我已经创建了
onCreateDialog()
,希望将
EditText
中的输入发送到数据库。我也有databasehandler类。现在,我想创建该类的一个对象,并在需要显示对话框时使用
show()

这种方法正确吗?或者如果我在扩展
活动的类中创建
onCreateDialog()
,而不是像前面的方法那样创建对象,效果会更好吗

代码片段是:

公共类AskDialog扩展了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;
}
}


我想通过在活动类中创建一个对象来使用这个类,并使用它的show(getFragment(),null)函数。

要创建自定义警报框,可以使用android提供的“布局充气器”类。要了解有关布局充气机的更多信息,您可以直接查看此链接

我认为这段代码将帮助您构建一个带有编辑字段和按钮的自定义AlertBox

LayoutInflater inflater =(LayoutInflater)Yourclass.this.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
addNotes = (LinearLayout) inflater.inflate(R.layout.ask, null);

final Button positiveButton = (Button) addNotes.findViewById(R.id.btn_positive);

final EditText et_ask=(EditText)addNotes.findViewById(R.id.et_ask);

positiveButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

String ab = et_ask.getText().toString();

addNotes.setVisibility(View.GONE);

}
});

LayoutParams params = new  LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT);
Yourclass.this.addContentView(addNotes,params);
addNotes.setVisibility(View.VISIBLE);

我的问题是,如果我试图在自定义对话框类中实例化EditText,并希望在setPositiveClick方法中读取该文本的值,它将报告一个错误。我该如何克服这个问题…?很抱歉我的回答太晚了…我编辑了我的答案,请仔细阅读。