带有布局的自定义AlertDialog



im试图获取EditText的内容,但Idont知道该怎么做。请在此帮助我。(IM使用方法showdialog)

protected  Dialog onCreateDialog(int id, Bundle args)
{
        AlertDialog.Builder builder2 = new AlertDialog.Builder(this);
        LayoutInflater inflater = this.getLayoutInflater();
        builder2.setView(inflater.inflate(R.layout.dialog_search_teacher,null));
        final EditText price,city;
        price=(EditText)findViewById(R.id.price_search);
        city=(EditText)findViewById(R.id.city_search);
        builder2.setPositiveButton("Serach", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                serach(city.getText().toString(),price.getText().toString());
            }
        });
        builder2.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

            }
        });
        AlertDialog alert2 = builder2.create();
        return(alert2);}

如果您需要从EditText获取文本,则必须这样做:

LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.dialog_search_teacher, null);
city=(EditText)view.findViewById(R.id.city_search);

然后,在onclick()方法上,您必须检索文本:

city.getText().toString();

但是,如果要将字符串传递给父类,则必须执行这样的接口:http://developer.android.com/training/basics/fragments/communicating.html

您必须找到像这样的deDittext ID

price =(deDittext)builder2.findviewbyid(r.id.price_search);

您应该在对话框方法下声明您的deDittext,例如

LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.dialog_search_teacher, null);
city=(EditText)view.findViewById(R.id.city_search);

之后,在执行OnClick侦听器以获取后按钮时,您可以使用

获得EditText的内容
city.getText().toString();

希望这对您有帮助。

最新更新