无法从布局中获取元素

时间:2011-02-04 12:54:26

标签: android layout android-layout android-intent

我有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之后。为什么呢?

2 个答案:

答案 0 :(得分:12)

我猜你的Activity onCreate()方法会发生这种情况,因为在调用findViewById()之前你正在调用setContentView()。如果情况并非如此,请显示更多代码。

答案 1 :(得分:6)

如果findViewById()未能找到您的目标ID,则可能会出现以下原因:

[[在你的情况下,我怀疑#1或#2。]

    尚未调用
  1. SetContentView()(或inflate)将布局与搜索相关联。

  2. 使用不包含目标ID的布局调用
  3. SetContentView()(或inflate),例如你指定了错误的布局。

  4. 布局或代码中id有拼写错误。

  5. 您导入了错误的R文件(就像库组件的R文件一样),巧合的是同一个ID也用在另一个R文件中。 / p>

  6. 您正在搜索错误的视图,例如你夸大了一个菜单布局,并没有将它附加到根布局,然后当你想要搜索膨胀的菜单布局时,你试图在根布局(findBiewById(..))中搜索一个id(menu.findBiewById(..)