NullPointerException with ListView and G calss



我做了一个G类:

public class G extends Application {
    public static Context                  context;
    public static LayoutInflater           inflater;
    public static Activity                 currentActivity;
    public static ArrayList<StructAnatomy> notes = new ArrayList<StructAnatomy>();

    @Override
    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();
        inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
}

并在 AndroidManifest 中定义了 G 类.xml :

<application
    android:name=".G"  //******************************** here
    android:icon="@drawable/icon"
    android:label="@string/app_name" >
    <activity
        android:name=".Home"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".Activity1"
        android:label="@string/app_name" >
    </activity>
</application>
我在活动 1

类中做了一个列表,它是活动 1.xml(包含列表)。当程序由活动 1 启动时没有错误,但当程序由主页活动启动然后进入解剖学 1 活动时,出现错误 (空指针异常)。这个问题有什么解决方案???

这是我的解剖学1活动:

public class Anatomy1 extends Activity {
    public ArrayList<StructAnatomy> anatomys1 = new ArrayList<StructAnatomy>();
    public ArrayAdapter             adapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.anatomy1);
        ListView listAnatomy1 = (ListView) findViewById(R.id.listAnatomy1);
        adapter = new AdapterAnatomy(anatomys1);
        listAnatomy1.setAdapter(adapter);
        for (int i = 0; i < 10; i++) {
            StructAnatomy anatomy1 = new StructAnatomy();
            anatomy1.title = "ANTERIOR VIEW" + i;
            anatomys1.add(anatomy1);
        }
        adapter.notifyDataSetChanged();
    }
}

日志猫错误:03-14 12:54:16.288: E/AndroidRuntime(1753): at m.k.Home$1.onTouch(Home.java:45)

主页 活动(某些代码):

anatomy1_1.setOnTouchListener(new OnTouchListener() {

    final ImageView anatomy1_1 = (ImageView) findViewById(R.id.anatomy1_1);
        @Override
        public boolean onTouch(View arg0, MotionEvent arg1) {
            anatomy1_1.setImageResource(R.drawable.anatomy1_2);
            Intent intent = new Intent(Home.this, Anatomy1.class);
            Home.this.startActivity(intent);
            return false;
        }
    });

尽管发布的错误语句不完整,因此对调试毫无用处,但我可以看到您正在尝试打开Anatomy1但这未manifest文件中定义。

在清单中添加此内容

<activity
    android:name=".Anatomy1"
    android:label="@string/app_name" >
</activity>

最新更新