EditText 空指针问题
来源:互联网 发布:刀锋铁骑高级书数据 编辑:程序博客网 时间:2024/06/08 10:46
今天在Android中碰到了这样一个问题,其实应该很少人会碰到,因为只有像我这种奇葩才会犯这种错误。
但既然解决了,我就想在这里跟大家分享一下,毕竟它困扰了我一个白天啊。。。不多说了,看下面。。。
其实问题很简单,就是Caused By : java.lang.NullPointerException.
上面就是我在用EditText 的时候它给我提示的错误类型。
为了简便,截取了部分代码如下,这就是问题的根源所在。
super.onCreate(savedInstanceState);
final EditText et = (EditText)findViewById(R.id.editTextId);
String str = et.getText().toString().trim();
setContentView(R.layout.main);
咋一看,没什么不对啊。就是因为我是新手,所以没看出端倪来。然后拼命的报错,拼命的上网查。
而网上却没有这个情况。。。
ADT Log 里面显示的出错位置就是String str = et.getText().toString().trim();这一行。
可它真的没什么不对啊,如果此时你呵呵了。那么你已经看出来了。
对,就是setContentView(R.layout.main);这句话位置放错了,它应该放在引用的资源文件的前面,在这里也就是
final EditText et = (EditText)findViewById(R.id.editTextId);这句话的前面。因为R.id.editTextId这个Id
引用到了R.layout.main这个Xml文件里面的对EditText的定义<EditText android:id="@+id/editTextId"
而在final EditText et = (EditText)findViewById(R.id.editTextId)句话之前我们并没有把R.layout.main这个Xml
文件放到我们的Context中来。我们可以观察一下findViewById()方法,会发现原来此方法中的R.id.editTextId是从当前
Activity的主布局文件xml中获取。而R.layout.main一定要先于findViewById(R.id.editTextId)在程序中声明。
那么这样改就对了:
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final EditText et = (EditText)findViewById(R.id.editTextId);
String str = et.getText().toString().trim();
setContentView(R.layout.main);
这是本人犯的低价错误,对于大神没有什么参考价值,但我确确实实被它耍了一回,所以有必要在这里分享一下。
- EditText 空指针问题
- Android中findViewById()h获取EditText 空指针问题
- Android中findViewById()获取EditText 空指针问题
- Android中findViewById()h获取EditText 空指针问题
- Android完美解决获取Dialog中EditText输入值空指针程序崩溃问题
- [ZZ] 空指针问题
- 空指针问题
- jsp空指针问题
- 空指针问题
- Java空指针问题
- 一个空指针问题
- SpringObjectFactory 空指针问题
- 空指针问题
- java空指针问题
- ButterKnife 空指针问题
- 空指针异常问题
- 论空指针检测问题
- 线程问题:空指针异常
- (二)源码分析之一:mysqld的启动流程
- 为什么父类指针可以指向子类反之则不行
- hibernate.cfg.xml
- java排序(汇总)
- 【ARM环境搭建】Redhat Enterprise6.3 yum源的配置
- EditText 空指针问题
- iOS开发 - 合并百度地图API真机和模拟器的.a文件
- Tomcat 系统架构与设计模式
- 最长公共重复不重复子串系列问题
- 音频处理
- 正则删除字符串左、右或两端的空格经验总结
- iOS开发-设置tabBar的背景图片
- hdu 1317 floyd+bellman-Ford
- 开源系统大全php- ecommerce 开源电商系统