访问 views onCreate()方法报NullPointerException

2014-10-14 13:44:46     人阅读    

我跟着教程 ,通过向导创建了一个新的activity ,当我运行时在 onCreate方法里面调用findViewById()方法时报错 NullPointerException 。

 

 

Layout XML (fragment_main.xml):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="packagename.MainActivity$PlaceholderFragment" >

    <View
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:id="@+id/something" />

</RelativeLayout>

处理方法


    教程明显过期了。你应该尝试创建基于 activity的活跃ui 而不是基于 fragment 的,你的代码明显是基于 fragment 的

参考如下的代码:

Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
  View rootView = inflater.inflate(R.layout.fragment_main, container,
      false);

  View something = rootView.findViewById(R.id.something); // not activity findViewById()
  something.setOnClickListener(new View.OnClickListener() { ... });

  return rootView;
}

findViewById 方法是在 super.onStart() after onCreate(). 后面执行,他们有先后顺序的.


原文地址:http://www.itmmd.com/201410/37.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

Android 报错 Activity 状态   上一篇
下一篇  R cannot be resolved R 文件找不到- Android 错误
精彩回复
#1楼    ; [评论人]:沐风   [发表时间]:2014-12-19 10:05:13

能够提供一下qq联系方式,我想加你咨询一下问题?我qq 3788789878

我要追加问题,请求站长解决!
姓名:       

《程序员app》专门为程序员量身定做!