今天自定义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.ibtnAddNumber
imageButton.setOnClickListener(new View.OnClickListener() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});builder.creat().show();}});}}

布局文件什么的就不贴了,很简单一看就明白了。
效果图:
Dialog对话框,例子对应第一个EditText

看这样就获取成功啦

总结:Dialog对话框的ui异于当前Activity中,所以不能在当前Activity中找,要在他的加载布局中也就是Dialog对话框中找,然后就和平常要做什么的步骤一样了。当然如果定义了其他的自定义控件,也有类似问题,解决思路是一样的。

Android中Dialog数据的获取报错空指针问题相关推荐

  1. android listview 数据同步,android中ListView数据刷新时的同步方法

    本文实例讲述了android中ListView数据刷新时的同步方法.分享给大家供大家参考.具体实现方法如下: public class Main extends BaseActivity { priv ...

  2. android中导入数据

    随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666).QQ技术交流群(183198395). 接着android 中导出数据 一文,下面介绍在android中导入数 ...

  3. android项目模块导入eclipse编译报错,android中studio导入eclipse项目报错怎么办

    android中studio导入eclipse项目报错怎么办 发布时间:2020-07-15 17:34:45 来源:亿速云 阅读:96 作者:清晨 这篇文章将为大家详细讲解有关android中stu ...

  4. Android中XML数据解析

    转载请注明出处:http://blog.csdn.net/yegongheng/article/details/38296207 XML初步 今天我们来学习另一种非常重要的数据交换格式-XML.XML ...

  5. android libbfaac.so,Android中Json数据读取与创建

    一:  Json的特性和在数据交互中的地位就不用说了,直接看案例. 首先在android studio中创建assets文件目录,用于存放Json数据文件,android studio 1.3 默认项 ...

  6. Android 中的数据储存方案, 持久化技术

    为什么80%的码农都做不了架构师?>>>    Android 中储存数据的方法主要有三种: 1,文件储存. 2,SharedPreference储存. 3,数据库储存. 1. 文件 ...

  7. Android中的数据存储

    Android中的数据存储 1.SharedPreference存储(共享参数) 1.1.使用SharedPreferences存储和读取数据的步骤 存储数据 保存数据一般分为四个步骤: 使用Acti ...

  8. Android中Fragment数据保存和恢复

    原文地址:请扫文后stormzhang大神的微信公众号--AndroidDeveloper 写在前面 上周我们总结了Activity中数据的保存和恢复,我们花两分钟来回顾一下: Android中突发情 ...

  9. android 读取内部存储文件格式,Android中的数据储存之文件存储

    当我们在使用各种程序时,其实际上是在和各种数据打交道,当我们聊QQ,刷微博,看新闻,其实都是在和里面的数据交互 例如在聊天时发出的消息,以及在登录时输入的账号密码,其实都是瞬时数据,那什么是瞬时数据呢 ...

最新文章

  1. Linux环境下虚拟环境virtualenv安装和使用(转)
  2. python程序的基本框架_Python PyQt学习随笔:PyQt主程序的基本框架
  3. python 爬虫 标签文本beautifullsoup_【Python爬虫】学习BeautifulSoup
  4. 为什么美团全面推动 K8S 落地,咬紧牙关也要搞云原生?
  5. 原生js 基于canvas写一个简单的前端 截图工具
  6. 【报告分享】2022中国职业教育行业报告-多鲸资本.pdf(附下载链接)
  7. mysql插入datetime默认值0000-00-00时报错
  8. Java-面向对象编程-三大特性之多态
  9. 打印机 树莓派安装cpus_raspberry树莓派安装CUPS实现打印服务器共享HP P1007打印机...
  10. 网络知识:光猫光纤宽带故障排查笔记!
  11. OCR表格识别—(一)
  12. php 一键wifi,懒人全自动脚本,一键自动swap2c一键3d加速,一键wifi加速等等.doc
  13. 文件拖到ads快捷方式打不开
  14. mt4怎么修改服务器代码,如何修改指标参数?
  15. ICCV,CVPR,ECCV
  16. 微信公众号主体如何变更迁移?
  17. Hadoop文件存储格式
  18. 【光电工程实训】光通信与光纤通信 电子元器件认知 万用表测量参数 元件特性 激光传声实验 自由空间光通讯 光纤光通信 全反射
  19. 响应式的优点与缺点?
  20. 数控等离子切割机,等离子切割机

热门文章

  1. MIRO 仅当操作基于收货的 IV 时输入货物收据
  2. 计算机应用基础闲情赋答案,计算机应用基础网络统考试卷 答案.doc
  3. 全球与中国转底炉市场深度研究分析报告
  4. Ubuntu make 降级方法
  5. \t\t手纹里面的秘密
  6. 朴素贝叶斯算法概率相关概念
  7. 我听说网络工程师已成为IT人的最底层了?
  8. java中IP地址与long之间的转换
  9. drf框架使用之 路飞学城(第一天)
  10. ABBYY FlexiCapture Engine使用心得分享