0

我想创建一个包含一个文本框和两个按钮的警报框。我为此创建了一个布局,其中包含一个EditText并创建了一个类扩展DialogFragment类。我已经创建onCreateDialog()并希望将输入从EditText数据库发送。我也有数据库处理程序类。我现在想创建一个类的对象,并show()在需要对话框出现时使用。

onCreateDialog()这种方法是正确的还是如果我在扩展的类中创建而不是像之前的方法那样创建对象会更好Activity

代码片段是:

公共类 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;
}

}

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

4

1 回答 1

0

要制作自定义警报框,您可以使用 android 提供的“Layout Inflater”类。要了解有关 Layout inflater 的更多信息,您可以直接查看此链接http://developer.android.com/reference/android/view/LayoutInflater.html

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

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);
于 2012-10-16T14:57:51.330 回答