java.lang.NullPointerException,我无法弄清楚为什么

时间:2012-12-06 23:40:47

标签: android

package com.nicotera.colton.londontransitguide;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class RoutesActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Spinner spinner = (Spinner) findViewById(R.id.route_name_spinner);

        // Create an ArrayAdapter using the string array and a default 
        // spinner layout
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.routes_array, android.R.layout.simple_spinner_item
        );

        // Specify the layout to use when the list of choices appears
        adapter.setDropDownViewResource(
            android.R.layout.simple_spinner_dropdown_item
        );

        // Apply the adapter to the spinner
        spinner.setAdapter(adapter);

        // TODO Auto-generated method stub
    }
}

结果:

12-06 23:34:28.954: E/AndroidRuntime(765): Caused by: java.lang.NullPointerException
12-06 23:34:28.954: E/AndroidRuntime(765): at com.nicotera.colton.londontransitguide.RoutesActivity.onCreate(RoutesActivity.java:22)

所以问题出现在第22行,但我无法弄清楚到底出了什么问题?我是一个全新的开发者,所以请求所有的帮助!

3 个答案:

答案 0 :(得分:4)

我猜第22行是:

spinner.setAdapter(adapter);

这意味着微调器为空。因此,调用findViewById()返回null。检查你的布局,你有一个ID为“R.id.route_name_spinner”的微调器吗?

答案 1 :(得分:0)

不确定解释。我的想法:

  • 你没有制作一个setContentView(R.layout.blablablabla)
  • 所以findViewById返回null
  • 最后,您尝试访问您的微调器的方法setAdapter,该方法为null。

塞尔

答案 2 :(得分:0)

小变化:     的setContentView(main.xml中);