今天在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 空指针问题的更多相关文章

  1. Android中findViewById()获取EditText 空指针问题

    因为EditText editText = (EditText)layout.findViewById(R.id.input_content);是从Dialog对话框布局layout中寻找ID为inp ...

  2. EditText 基本用法

    title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...

  3. C++11特性——变量部分(using类型别名、constexpr常量表达式、auto类型推断、nullptr空指针等)

    #include <iostream> using namespace std; int main() { using cullptr = const unsigned long long ...

  4. Android带加减的edittext

    看了网上这样自带加减的edittext写得好复杂,还有各种监听事件,我觉得没有必有.于是我自己写了一个. 我这个edittext仅仅限制整数,每次加减1. public class TestEditT ...

  5. android EditText 默认情况下不获取焦点(不弹出输入框)

    可以在EditText前面放置一个看不到的LinearLayout,让它率先获取焦点: <LinearLayout android:focusable="true" andr ...

  6. 使用EditText的addTextChangedListener(new TextWatcher())方法

    (转:http://www.apkbus.com/android-5257-1-14.html) 在使用EditText的addTextChangedListener(new TextWatcher( ...

  7. 布局TextView和EditText区别,layout_width和lay_weight区别--Android Studio

    1. TextView控件是文本表示控件,主要功能是向用户展示文本的内容,它是不可编辑的,如设置标题:EditText控件是编辑文本控件,主要功能是让用户输入文本的内容,它是可以编辑的.每一个控件都有 ...

  8. appium实现截图和清空EditText

    前些日子,配置好了appium测试环境,至于环境怎么搭建,参考:http://www.cnblogs.com/tobecrazy/p/4562199.html   知乎Android客户端登陆:htt ...

  9. EditText获取和失去焦点,软键盘的关闭,和软键盘的显示和隐藏的监听

    软键盘显示和隐藏的监听: 注: mReplayRelativeLayout是EditText的父布局 //监听软键盘是否显示或隐藏 mReplayRelativeLayout.getViewTreeO ...

随机推荐

  1. USB驱动开发

    1.usb特点 2.usb class 3.

  2. AdapterView及其子类之四:基于ListView及SimpleAdapter实现列表

    代码请见SimpleAdapterDemo.zip. 步骤如下: 1.创建主布局文件 <RelativeLayout xmlns:android="http://schemas.and ...

  3. 踩坑学php(1)

    前言: 为什么要学php 呢?作为一个前端,一直有着了解后台的好奇心:作为一个计算机毕业的,一直有着实践更多设计模式和数据库相关的东西:而php 非常流行,拥有非常多的资源,入门应该容易: 为什么叫& ...

  4. how to use http.Agent in node.js

    Actually now that I look at the Agent code, it looks like it sets maxSockets on a per domain basis i ...

  5. 关于KeyEvent.Callback

    keycode------------>KEYCODE_BACK,KEYCODE_MENU event.getAction------->ACTION_DOWN,ACTION_UP,ACT ...

  6. poj 3287 The Trip, 2007_贪心

    题意:把一个包放入另一个包内,使得总共要带的件数最少,就是说大包可以装小包,且一个大包只能装一个小包,但是这个小包可以继续装更小的包. 思路:因为相同大小的包不能互相装,所以最小数量就是有相同尺寸的包 ...

  7. poj 1734 Sightseeing trip_ 最小环记录路径

    题意:求最出小环,输出路径 #include <iostream> #include<cstdio> using namespace std; #define N 110 #d ...

  8. 【LeetCode练习题】Copy List with Random Pointer

    Copy List with Random Pointer A linked list is given such that each node contains an additional rand ...

  9. x/nfu-用gdb查看内存

    用gdb查看内存 2007-12-08 12:43 用gdb查看内存 格式: x /nfu <addr> 说明x 是 examine 的缩写 n表示要显示的内存单元的个数 f表示显示方式, ...

  10. POJ 3678 Katu Puzzle(2 - SAT) - from lanshui_Yang

    Description Katu Puzzle is presented as a directed graph G(V, E) with each edge e(a, b) labeled by a ...