EditText 空指针问题
今天在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();
这是本人犯的低价错误,对于大神没有什么参考价值,但我确确实实被它耍了一回,所以有必要在这里分享一下。
EditText 空指针问题的更多相关文章
- Android中findViewById()获取EditText 空指针问题
因为EditText editText = (EditText)layout.findViewById(R.id.input_content);是从Dialog对话框布局layout中寻找ID为inp ...
- EditText 基本用法
title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...
- C++11特性——变量部分(using类型别名、constexpr常量表达式、auto类型推断、nullptr空指针等)
#include <iostream> using namespace std; int main() { using cullptr = const unsigned long long ...
- Android带加减的edittext
看了网上这样自带加减的edittext写得好复杂,还有各种监听事件,我觉得没有必有.于是我自己写了一个. 我这个edittext仅仅限制整数,每次加减1. public class TestEditT ...
- android EditText 默认情况下不获取焦点(不弹出输入框)
可以在EditText前面放置一个看不到的LinearLayout,让它率先获取焦点: <LinearLayout android:focusable="true" andr ...
- 使用EditText的addTextChangedListener(new TextWatcher())方法
(转:http://www.apkbus.com/android-5257-1-14.html) 在使用EditText的addTextChangedListener(new TextWatcher( ...
- 布局TextView和EditText区别,layout_width和lay_weight区别--Android Studio
1. TextView控件是文本表示控件,主要功能是向用户展示文本的内容,它是不可编辑的,如设置标题:EditText控件是编辑文本控件,主要功能是让用户输入文本的内容,它是可以编辑的.每一个控件都有 ...
- appium实现截图和清空EditText
前些日子,配置好了appium测试环境,至于环境怎么搭建,参考:http://www.cnblogs.com/tobecrazy/p/4562199.html 知乎Android客户端登陆:htt ...
- EditText获取和失去焦点,软键盘的关闭,和软键盘的显示和隐藏的监听
软键盘显示和隐藏的监听: 注: mReplayRelativeLayout是EditText的父布局 //监听软键盘是否显示或隐藏 mReplayRelativeLayout.getViewTreeO ...
随机推荐
- UVA 11214 Guarding the Chessboard
题意: 皇后防御的范围是他所在横.竖.对角线,地图上的#为可以放旗子的地方.问最少放几个皇后能防守所有#. 分析: vis数组开4维,对应行.列.主对角线.副对角线 代码: #include < ...
- linux学习笔记之文件类型,及目录介绍
引用A:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/20/3033131.html 引用B:http://www.cnblogs.c ...
- JQuery>>>get/post赋值全局变量
JQuery' post&get: asynchronous. 2014-06-27 16:57:25 var client; function getClient(){ $.ajax ...
- HTML5动画图片播放器 高端大气
我们见过很多图片播放插件(焦点图),很多都基于jQuery.今天介绍的HTML5图片播放器很特别,它不仅在图片间切换有过渡动画效果,而且在切换时图片中的元素也将出现动画效果,比如图中的文字移动.打散. ...
- Dragon Balls--hdu3635(并查集)
Dragon Balls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- keepalived 安装和配置
第一步:安装 yum -y install keepalived 第二步:配置 /etc/keepalived/keepalived.conf ! Configuration File for kee ...
- 算法分析-插入排序INSERT_SORT与选择排序SELECT_SORT【线性方法】
var A = [5, 2, 4, 6, 1, 3]; console.log("排序前-:") A.forEach(function (element, index, arr) ...
- sql server数据库实现保留指定位数小数的函数
有时候需要对一个特定的含有小数点的数字保留指定位数,比如"123.123600". 在数据库中以函数的形式实现如下: USE [数据库名称] GO /****** Object: ...
- C++利用指针突破私有成员访问限制
C++ 面向对象的一大特性就是封装,使用不同的访问控制符来控制外接对其的访问权限.比如: 1 class A 2 { 3 public: 4 A(): i(10){} 5 void print(){ ...
- JavaEE Tutorials (27) - Java EE的并发工具
27.1并发基础427 27.1.1线程和进程42827.2并发工具的主要组件42827.3并发和事务42927.4并发和安全43027.5jobs并发示例430 27.5.1运行jobs示例4302 ...