问题描述:
在MainActivity中按下按钮后弹出一个对话框,在对话中利用EditText控件进行输入,在获取EditText内容时,直接写成
EditText fineEdit = (EditText) findViewById(R.id.fine);
此时会发生空指针错误。
问题分析:
通过findViewById 来获取控件,如果不指定父View,则默认是这个activity的 layout,而如果layout中并没有这个ID,那么获取到的 pass 就是null。这里的 EditText 是属于你的弹出对话框中的控件,所以需要指定父View为对话框的layout,也就是
EditText fineEdit = (EditText) earn_money.findViewById(R.id.fine);
其中earn_money定义如下,必须要加上final
final LinearLayout earn_money = (LinearLayout)getLayoutInflater()
.inflate( R.layout.activity_earn_money, null);
上述的R.layout.activity_earn_money是弹出对话框的布局文件名
参考
http://www.2cto.com/kf/201203/123921.html
http://bbs.csdn.net/topics/390624588