getText()空指针异常

u010811157 2013-08-24 10:12:01
新建一个类型为Preference 的XML文件,根元素为PreferenceScreen,里面PreferenceCategory元素下引用一个LinearLayout布局XML文件,布局文件里有一个EditText et

在相关的public class mainPreferenceActivity extends PreferenceActivity里面
对该EditText进行引用

类里先行申明: private EditText et;
然后在onCreat里: et = (EditText)findViewById(R.id.et);

最后在按钮的单击里:String sPhone = et.getText().toString(); 执行这一语句时报:空指针异常,前边一切正常,R文件里也正常生成了该 EditText,请问高手,如何解决这个异常?多谢,另:et.setText("123")语句同样报空指针异常



...全文
740 27 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010811157 2013-09-01
  • 打赏
  • 举报
回复
各位,可能是这样的,这个XML没有用SETCONTENTvIEW方法加入,所以报空指针异常
u010811157 2013-08-30
  • 打赏
  • 举报
回复
et和bt如下,在activity中bt可正常使用,e报t空指针 <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/et" android:layout_marginLeft="12dip" android:layout_alignParentBottom="true" android:layout_toRightOf="@android:id/title" android:hint="这里输入本机号码" android:textSize="16dip" android:textColor="#FF0000" android:focusableInTouchMode="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+android:id/bt" android:layout_marginLeft="12dip" android:layout_alignParentBottom="true" android:layout_toRightOf="@id/et2" android:textSize="16dip" android:textColor="#000000" android:shadowColor="#F8F8FF" android:onClick="register" android:text="用户注册" />
danielinbiti 2013-08-29
  • 打赏
  • 举报
回复
子视图控件试试在onBindView方法中获取 你xml布局中button和edittext的id写法不一样,button是不是与android.r中刚好一致了。
u010811157 2013-08-29
  • 打赏
  • 举报
回复
同一位置的BUTTON控件可以正常使用!!!button的单击事件正常使用! 好的,我再看看addPreferencesFromResource()方法
第一滴泪 2013-08-28
  • 打赏
  • 举报
回复
引用 20 楼 u010811157 的回复:
既然et.setText("123")语句同样报空指针异常,那么应该是得到的et==null,你加log看下得到的et是不是null,如果是null那就要检查一下你的xml 说得有道理,但XML我实在检查不出有啥问题,另外,楼上说好好看看addPreferencesFromResource()方法的使用再写吧,我用的版本里该方法提示已不建议使用了,不使用addPreferencesFromResource(),又该使用哪个方法呢
如果你只是用普通的方式来做,就别用addPreferencesFromResource(),就通过setcontentview来写就是,可定是可以找到view的。 如果用prefereneceActivity,就需要使用addPreferencesFromResource(),通过它是没法使用findviewbyid的,找到的自然是null。不建议使用但可以使用,最新推荐的PreferenceFragment不知道你是否习惯用它。
bnzx 2013-08-28
  • 打赏
  • 举报
回复
clean试试
u010811157 2013-08-28
  • 打赏
  • 举报
回复
既然et.setText("123")语句同样报空指针异常,那么应该是得到的et==null,你加log看下得到的et是不是null,如果是null那就要检查一下你的xml 说得有道理,但XML我实在检查不出有啥问题,另外,楼上说好好看看addPreferencesFromResource()方法的使用再写吧,我用的版本里该方法提示已不建议使用了,不使用addPreferencesFromResource(),又该使用哪个方法呢
第一滴泪 2013-08-28
  • 打赏
  • 举报
回复
好好看看addPreferencesFromResource()方法的使用再写吧
媒体盒子 2013-08-28
  • 打赏
  • 举报
回复
哥们你这种问题我也碰到过,我的是这样的,由于要适应不同分辨率所以定义了各种分辨率的layout layout-1024*600 。。。然后你运行的设备的那个分辨率里面写漏了这个控件 就会出现null pointer
yuleyouxi 2013-08-28
  • 打赏
  • 举报
回复
引用 20 楼 u010811157 的回复:
既然et.setText("123")语句同样报空指针异常,那么应该是得到的et==null,你加log看下得到的et是不是null,如果是null那就要检查一下你的xml 说得有道理,但XML我实在检查不出有啥问题,另外,楼上说好好看看addPreferencesFromResource()方法的使用再写吧,我用的版本里该方法提示已不建议使用了,不使用addPreferencesFromResource(),又该使用哪个方法呢
你的xml是放在layout里面还是layoutXXXX(XXXX表示分辨率之类的)呢? 会不会如18L所说的,你放的xml的位置不对导致找不到这个控件呢?
荒颜 2013-08-27
  • 打赏
  • 举报
回复
我把xml复制进去还报错了... android:layout_toRightOf="@id/et2"这个id是没有的 而且LZ的布局混乱 <TextView android:id="@+android:id/title" android:layout_alignParentLeft="true" android:layout_centerInParent="true" android:textColor="#000000"/> <EditText android:layout_alignParentBottom="true" android:layout_toRightOf="@android:id/title" /> textview在中间,EditText在底部,toRightOf...
yuleyouxi 2013-08-27
  • 打赏
  • 举报
回复
既然et.setText("123")语句同样报空指针异常,那么应该是得到的et==null,你加log看下得到的et是不是null,如果是null那就要检查一下你的xml
angusing 2013-08-27
  • 打赏
  • 举报
回复
这里的null主要是getText()返回的,它是null的时候你再调用里面的方法toString()肯定会报错。我目前处理的方法是加 if(xxx.getText() != null),然后再写下面的代码,就可以保证不出错了。 这里的getText好像跟其他语言的不一样,当Text没有内容的时候不是返回""的指针,而是返回null指针。
wssxs8888 2013-08-27
  • 打赏
  • 举报
回复
在执行操作的时候再绑定一次试试。
u010811157 2013-08-27
  • 打赏
  • 举报
回复
我没有贴全,所有XML是没有问题的,界面都正常运行起来了,只是在执行操作的时候报错
u010811157 2013-08-26
  • 打赏
  • 举报
回复
XML如上哈
u010811157 2013-08-26
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:gravity="center_vertical" android:paddingRight="5dp" android:paddingLeft="?android:attr/scrollbarSize"> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"> <TextView android:id="@+android:id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="marquee" android:singleLine="true" android:fadingEdge="horizontal" android:layout_alignParentLeft="true" android:layout_centerInParent="true" android:textSize="18dp" android:textColor="#000000"/> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/et" android:layout_marginLeft="12dip" android:layout_alignParentBottom="true" android:layout_toRightOf="@android:id/title" android:hint="这里输入本机号码" android:textSize="16dip" android:textColor="#FF0000" android:focusableInTouchMode="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+android:id/bt" android:layout_marginLeft="12dip" android:layout_alignParentBottom="true" android:layout_toRightOf="@id/et2" android:textSize="16dip" android:textColor="#000000" android:shadowColor="#F8F8FF" android:onClick="register" android:text="用户注册" /> <TextView android:id="@+android:id/summary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="marquee" android:textSize="14dp" android:layout_below="@android:id/title" android:layout_alignLeft="@android:id/title" android:textColor="#b2aeaf"/> </RelativeLayout> <!-- Preference should place its actual preference widget here. --> <LinearLayout android:id="@+android:id/widget_frame" android:layout_width="wrap_content" android:layout_height="fill_parent" android:gravity="center_vertical" android:orientation="vertical"/> </LinearLayout>
u010811157 2013-08-26
  • 打赏
  • 举报
回复
这个preference(EditText所在的布局)是嵌套在真正的preference里的,真正的preference并没有贴出来 现在我帖前边的一段出来 <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <PreferenceCategory android:layout="@layout/preference_category" android:title="客户端注册"> <Preference android:title="手机号:" android:layout="@layout/preference" /> ..........
yuebanmumu 2013-08-26
  • 打赏
  • 举报
回复
你的edittext本来就是空啊,text值没数据...你给et.setText看看
gesanri 2013-08-26
  • 打赏
  • 举报
回复
无语了。。。 这是preference吗?你不会是帖的setting.xml吧
加载更多回复(7)

80,473

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧