AndroidAndroid

【Android】弹出对话框接受用户输入

2016-01-27  本文已影响8991人  jackLee

【申明】:图片资源均来自网络


Paste_Image.png

在开发中我们会有这样的需求:弹出一个对话框,接受用户的输入信息,然后对用户的信息进行处理。
那么怎么解决此需求呢?
Android中有AlertDialog这样的一个控件可以给我们使用。

AlertDialog的用途##

首先了解一下AlertDialog:
--最直接的用途:弹出警告框,比如:用户使用时,手机未连接WiFi,用户推出当前程序,用户删除文件时:

Paste_Image.png
Paste_Image.png

--第二种就是能接受用户输入的对话框,如图:

Paste_Image.png
Paste_Image.png

--由插图可以看出,dialog的样式可以由我们自己设计出各种各样的样子

如何使用##

踩过的坑

Null Object reference的异常

'android.text.Editable android.widget.EditText.getText()' on a null object reference
Getting value of EditText contained in a Custom Dialog Box
--链接为StackOverFlow上的解决办法
--当我们在MainActivity中使用:
EditText et = (EditText) findViewById(R.id.GoalChooser);这样是可以的,
但当我们使用Inflater从某一个XML文件中转为View然后再getViewById时需要这样做:
<code>View view = inflater.inflate(R.layout.goaldialog, null);
EditText et = (EditText)view.findViewById(R.id.GoalChooser);</code>

获取Input值处理时的坑

在我们处理EditText中的输入值时应该先对其进行非空检验”
<code>
EditText in = (EditText)view.findViewById(R.id.brightness_input_et);//01
if(!"".equals(in.getText().toString())&&in.getText().toString()!=null){ //02
Integer brightness = Integer.parseInt(in.getText().toString());//03
}
</code>
--以上三行代码:


关注我学习更多技术哦

学习更多技术
上一篇 下一篇

猜你喜欢

热点阅读