自定义dialog中组件的获取
来源:互联网 发布:合肥飞恒网络 编辑:程序博客网 时间:2024/06/06 11:48
问题描述:今天在做弹出对话框的功能时,想获取对话框中组件的text并在主窗口显示,结果运行以后报nullpointer
排查:经过对代码的隔离,发现是findViewById(R.id.server_addr);返回是null。难道dialog没有显示么?没显示怎么会有输入。。。那对话框都出来了,id也对,为什么find会是null呢?通过debug发现,进入setPositiveButton的onClick以后,this是指向MainActivity,而不是dialog,而onClick传入的第一个参数指向了dialog,但是不能获取组件。
解决:看findViewById,忽然想到,组件是在view中的,而dialog只是一个容器,加载了该view,那么获取组件应该是从view中获取,而这里的view就是TableLayout serverConfig = (TableLayout)getLayoutInflater().inflate(R.layout.server_config, null);而如果要在onClick中使用该变量(serverConfig)还需要为其加上final关键字。修改后代码如下,重新debug,成功获得组件。
findViewById(R.id.config_service).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final TableLayout serverConfig = (TableLayout)getLayoutInflater().inflate(R.layout.server_config, null); new AlertDialog.Builder(MainActivity.this).setView(serverConfig) .setPositiveButton("连接", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { EditText etAddr = (EditText) serverConfig.findViewById(R.id.server_addr); EditText etPort = (EditText) serverConfig.findViewById(R.id.server_port); String addr = etAddr.getText().toString(); String port = etPort.getText().toString(); musicUtil.setServerAddr(addr); musicUtil.setServerPort(port); ((TextView) findViewById(R.id.show_server_addr)).setText(addr); ((TextView) findViewById(R.id.show_server_port)).setText(port); } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }) .create() .show(); } });
0 0
- 自定义dialog中组件的获取
- Dialog中获取自定义控件
- android中dialog(自定义dialog)的使用方法!!!
- android 组件之Dialog(自定义)
- 微信小程序自定义组件Dialog
- android 中dialog的应用 --- 自定义的dialog
- android 中Dialog对话框及自定义Dialog的方法
- Android中自定义Dialog的使用
- Android中自定义圆角的Dialog
- android中自定义dialog的使用方法简介
- 自定义Android中Dialog的弹出动画
- 在dialog中获取Edittext的值
- 在dialog中获取Edittext的值
- jqueryui的dialog组件
- android 中自定义dialog
- android中自定义dialog
- Android中自定义Dialog
- Android中自定义dialog
- 常用控件:03_004 ScrollView嵌套ListView实现和其替代方法
- [LeetCode 318] Maximum Product of Word Lengths
- 从HDFS拷贝一个表到系统目录生成CSV
- uva1146Now or later飞机调度【2-SAT】入门题
- asp.net 路径解惑
- 自定义dialog中组件的获取
- android studio 测试两种测试用例的切换问题
- 纯js实现点击一个事件后,触发另外一个事件的方法
- Android组件ImageLoader
- DOS批处理之一----返回值
- apache-shiro 学习笔记
- log4j:WARN No such property [maxBackupIndex] in org.apache.log4j.DailyRollingFil
- Eclipse+多国语言包插件+Tomcat插件+Lomboz插件+Myeclipse插件的安装与配置
- java中 if 判断条件中 null == object寓意何在?