我有2项活动。第二个.xml看起来像:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@+id/TrainsListView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
清单的一部分:
<activity android:name="TrainsActivity">
</activity>
我正在尝试获取TrainsListView:
mListView = (ListView) findViewById(R.id.TrainsListView);
但是在此mlistView为null之后。为什么呢?
答案 0 :(得分:12)
我猜你的Activity onCreate()
方法会发生这种情况,因为在调用findViewById()
之前你正在调用setContentView()
。如果情况并非如此,请显示更多代码。
答案 1 :(得分:6)
如果findViewById()
未能找到您的目标ID,则可能会出现以下原因:
[[在你的情况下,我怀疑#1或#2。]
SetContentView()
(或inflate
)将布局与搜索相关联。
SetContentView()
(或inflate
),例如你指定了错误的布局。
布局或代码中id
有拼写错误。
您导入了错误的R
文件(就像库组件的R
文件一样),巧合的是同一个ID也用在另一个R
文件中。 / p>
您正在搜索错误的视图,例如你夸大了一个菜单布局,并没有将它附加到根布局,然后当你想要搜索膨胀的菜单布局时,你试图在根布局(findBiewById(..)
)中搜索一个id(menu.findBiewById(..)
)