【问题标题】:custom AlertDialog with layout带有布局的自定义 AlertDialog
【发布时间】:2015-05-12 14:47:22
【问题描述】:

我正在尝试获取 editText 的内容,但不知道该怎么做。请帮帮我。(我使用方法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);}

【问题讨论】:

  • 您遇到了什么问题?另外,布局内的EditTextsetContentView()还是dialog_search_teacher.xml
  • 不相关的兄弟提示:使用LayoutInflater.from(builder2.getContext())。 IE。使用带有对话框主题的上下文来扩充对话框的内容。这将最显着地修复黑色对话框中不正确的字体颜色而不是白色活动,反之亦然。

标签: android android-alertdialog


【解决方案1】:

如果您需要从 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

【讨论】:

    【解决方案2】:

    你必须像这样找到editText id

    price=(EditText)builder2.findViewById(R.id.price_search);

    【讨论】:

      【解决方案3】:

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

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

      之后,在为 postive 按钮做 onClick 监听时,你可以使用 editText 获取内容

      city.getText().toString();
      

      希望这会对您有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-19
        • 1970-01-01
        相关资源
        最近更新 更多