1
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 行目にあるようですが、何が問題なのか正確にはわかりません。私はまったく新しい開発者なので、すべての助けに感謝します!

4

3 に答える 3

4

22行目は次のようになります。

spinner.setAdapter(adapter);

これは、スピナーが null であることを意味します。したがって、呼び出し findViewById() は null を返しています。レイアウトを確認してください。ID「R.id.route_name_spinner」のスピナーはありますか?

于 2012-12-06T23:49:46.707 に答える
0

小さな変更:setContentView(main.xml);

于 2012-12-06T23:57:42.293 に答える
0

説明に自信がない。私が思うこと:

  • setContentView(R.layout.blablablabla) を作成していません
  • したがって、findViewById は null を返します
  • 最後に、null であるスピナーのメソッド setAdapter にアクセスしようとします。

サージ

于 2012-12-06T23:52:52.907 に答える