我已经搜索了近一个小时了,为什么我的代码在setAdapter上运行了一个NPE。这是发布NPE的代码部分(第83行和第84行,错误在第84行)
ListView cList = (ListView)findViewById(R.id.mylistview);
cList.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,listitems));
&#34;时listItems&#34;定义为
String[] listitems= {"A","b","C","d","E","f"};
继承完整的myActivity.java:http://pastebin.com/ymiKRUc4
这就是LogCat所说的:http://pastebin.com/gPZYtXng
我的fragment_myactivity.xml只是
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/mylistview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</ListView>
</LinearLayout>
这是我的activity_myactivity.xml
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.myapp.myActivity" />
答案 0 :(得分:2)
myActivity
为其布局夸大了activity_myactivity.xml
:
setContentView(R.layout.activity_myactivity);
但是,mylistview
位于fragment_myactivity.xml
。我假设您在覆盖Fragment
的{{1}}子类中夸大此XML文件。这是您需要放置
onCreateView()
请注意,ListView cList = (ListView)findViewById(R.id.mylistview);
cList.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,listitems));
中无法使用片段膨胀的观看次数,因此Activity.onCreate()
会为这些观看次数findViewById()
返回。