Android中Dialog数据的获取报错空指针问题
来源:互联网 发布:ibm软件测试招聘 编辑:程序博客网 时间:2024/06/05 11:54
今天自定义Dialog,目的是需要在Dialog中输入EditText然后获取数据传递到需要的地方,最初的方法:
OnCreat()方法中初始化view控件,然后使用.getText()来获取,这是平常我们所用的方法,也很简单就不多说了
然而是一直报错:java.lang.NullPointerException: Attempt to invoke virtual method空指针问题
很郁闷的查了好久,最后发现了解决方式。
解决思路:这个我们一般上初始化View控件都是在某个Activity的java文件的OnCreat()方法中findViewById()来做的,但是细细想来,你想要获取Dialog中的控件而不是这个Activity的所以找不到出现null错误,去你所加载的那个layout中查找,然后初始化,就可以了。
主要实现代码:
//主Activity,点击imagebutton弹出对话框public class ControlActivity extends AppCompatActivity {private ImageButton imageButton;protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_control);imageButton = (ImageButton) findViewById(R.id.ibtnAddNumberimageButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MyDialog.Builder builder = new MyDialog.Builder(ControlActivity.this); /** ***从这开始找** */ //加载是Dialog的布局,从这个布局里边找他的控件才能找到 LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.my_dialog, (ViewGroup) findViewById(dialog)); //*初始化控件,和平时我们找的一样,注意layout.别忘了 final EditText c_id = (EditText) layout.findViewById(R.id.c_id); /** *这两个主要点 接下来想做什么,在下边的点击事件中做就好了,这里显示Toast试试吧 */ builder.setTitle("添加设置项"); builder.setContentView(layout); builder.setPositiveButton("确定添加", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Toast显示获取的数据 c_id.getText()就是 Toast.makeText(ControlActivity.this,c_id.getText(),Toast.LENGTH_SHORT).show(); dialog.dismiss(); addAdapter.notifyDataSetChanged(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.creat().show(); } }); } }
布局文件什么的就不贴了,很简单一看就明白了。
效果图:
Dialog对话框,例子对应第一个EditText
看这样就获取成功啦
总结:Dialog对话框的ui异于当前Activity中,所以不能在当前Activity中找,要在他的加载布局中也就是Dialog对话框中找,然后就和平常要做什么的步骤一样了。当然如果定义了其他的自定义控件,也有类似问题,解决思路是一样的。
0 0
- Android中Dialog数据的获取报错空指针问题
- Android完美解决获取Dialog中EditText输入值空指针程序崩溃问题
- easyui中dialog怎么获取后台传回的数据
- 关于获取dialog中edittext的值问题
- Android Dialog(对话框中获取输入框的内容)
- android中dialog(自定义dialog)的使用方法!!!
- 有关android中“Activity伪装”的Dialog问题的解决
- [Android]取得Dialog中EditText的内容问题
- Android开发:在AsyncTask中使用Dialog出现的问题
- Android中使用自定义Dialog时match_parent无效的问题
- Android中findViewById()h获取EditText 空指针问题
- Android中findViewById()获取EditText 空指针问题
- Android中findViewById()h获取EditText 空指针问题
- Android中强大的Dialog
- android中Dialog的使用方法
- Android中Dialog的使用
- Android中Dialog的使用
- android中dialog的样式
- matlab2015a安装教程
- COD4:Lighting 光照体的添加和特点
- 第十一章 个人渣翻译 spf13插件---nerdtree 使用教程(下)
- 51单片机做计时器
- Windows配置MySQL(5.6.20)免安装版
- Android中Dialog数据的获取报错空指针问题
- 在apache配置ecdsa加密套件
- 并发this.getName()和Thread.currentThread().getName()区别
- EOJ1488 COIN COLLECTOR 贪心
- PAT_自测4_Have Fun with Numbers
- 开始啦
- 公钥密码学
- Vista RC vs. pagefile攻击
- Error:Execution failed for task ':app:compileDebugJavaWithJavac'.解决方案