自定义dialog中EditText的问题

自定义了一个dialog,使用自己的xml 布局的,其中包含一个EditText、一个确定按键。本想通过确定事件获取EditText 中用户输入的信息,但在实际运行是程序出错。

网上的android开发教程讲到带有EditText 的dialog,大多都只是展示出这个控件,却没有具体与这个控件交互的实现。

出错的原因是,当我们获得了自定义dialog 的布局:

View textEntryView = inflater.inflate(R.layout.menu_goto_which, null);

在此之后,一直到了按钮的响应监听函数那里,该获得EditText 的id 的地方,错误的写法是:

EditText goto_which = (EditText)findViewById(R.id.goto_which);

而正确的写法是:

EditText goto_which = (EditText)textEntryView.findViewById(R.id.goto_which);

注意到此处的不同了吗?我们的Acitvity 算一个view,而我们的自定义dialog 也算一个view,这样,在获得控件id 时,要确定这控件到底是哪个view 的。否则,在程序运行时,就会出现错误,说有空指针。