为什么findViewById返回null?

时间:2012-01-24 02:01:41

标签: android xml

onCreate的相关部分在我的应用程序的第一个Activity中:

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  GridView sdcardImages = (GridView) findViewById(R.id.sdcard);
  sdcardImages.setAdapter(new ImageAdapter(this));

  // ...

}

布局/ main.xml中:

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/sdcard"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:padding="2dp"
  android:verticalSpacing="2dp"
  android:horizontalSpacing="2dp"
  android:numColumns="auto_fit"
  android:columnWidth="70dp"
  android:stretchMode="columnWidth"
  android:gravity="center"
/>

在这里没有任何问题,然后突然间,即使最近甚至没有触及任何此代码,我开始在sdcardImages.setAdapter(new ImageAdapter(this));上发现NullPointerException findViewById(R.id.sdcard)突然返回null。

有人知道为什么会这样吗?清理和重建项目没有帮助。

编辑:解决了我想,我第一次清理它没有任何改变,但我在第二次清洁后它起作用。

1 个答案:

答案 0 :(得分:0)

适配器需要游标。传递一个有效的光标,它应该可以工作。