-1

同様の質問ですべての提案を試しましたが、修正できません。Spinner ビューでヌル ポインター例外が発生します。例外は次の行で発生します: spinner.setAdapter(adapter);. 正しく膨らませていないことと関係があると思います。String 配列が問題になることはありません。ここのコードのほぼ正確なコピーも試しました: http://developer.android.com/guide/topics/ui/controls/spinner.html

また、コードを複数回クリーンアップしました。誰でも問題を見つけることができますか?

コード:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_settings);

        Spinner spinner = (Spinner) findViewById(R.id.themeSpinner);
        String[] themesArray = new String[]{"Dark Holo Theme"};


        // Create an ArrayAdapter using the string array and a default spinner layout
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, themesArray);
        // 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);

XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/relativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".SettingsActivity" >

    <Spinner
        android:id="@+id/themeSpinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/screenDimSwitch"
        android:layout_centerHorizontal="true" />

</RelativeLayout>

ログキャット:

12-28 16:22:04.011: E/AndroidRuntime(12269): 致命的な例外: メイン 12-28 16:22:04.011: E/AndroidRuntime(12269): java.lang.RuntimeException: アクティビティ ComponentInfo{com を開始できません。 example.sudokuandroidprobeersel/com.example.sudokuandroidprobeersel.SettingsActivity}: java.lang.NullPointerException 12-28 16:22:04.011: E/AndroidRuntime(12269): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970) で 12 -28 16:22:04.011: E/AndroidRuntime(12269): android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995) で 12-28 16:22:04.011: E/AndroidRuntime(12269): android.app で.ActivityThread.access$600(ActivityThread.java:127) 12-28 16:22:04.011: E/AndroidRuntime(12269): android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161) 12-28 16: 22:04.011: E/AndroidRuntime(12269):android.os.Handler.dispatchMessage(Handler.java:99) 12-28 16:22:04.011: E/AndroidRuntime(12269): android.os.Looper.loop(Looper.java:137) 12-28 16 :22:04.011: E/AndroidRuntime(12269): android.app.ActivityThread.main(ActivityThread.java:4512) 12-28 16:22:04.011: E/AndroidRuntime(12269): java.lang.reflect で。 Method.invokeNative(ネイティブ メソッド) 12-28 16:22:04.011: E/AndroidRuntime(12269): java.lang.reflect.Method.invoke(Method.java:511) 12-28 16:22:04.011: E /AndroidRuntime(12269): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:984) 12-28 16:22:04.011: E/AndroidRuntime(12269): com.android.internal. os.ZygoteInit.main(ZygoteInit.java:751) 12-28 16:22:04.011: E/AndroidRuntime(12269): dalvik.system.NativeStart.main(ネイティブ メソッド) 12-28 16:22:04.011:E/AndroidRuntime(12269): 原因: java.lang.NullPointerException 12-28 16:22:04.011: E/AndroidRuntime(12269): com.example.sudokuandroidprobeersel.SettingsActivity.onCreate(SettingsActivity.java:80) 12- 28 16:22:04.011: E/AndroidRuntime(12269): android.app.Activity.performCreate(Activity.java:4465) 12-28 16:22:04.011: E/AndroidRuntime(12269): android.app. Instrumentation.callActivityOnCreate(Instrumentation.java:1052) 12-28 16:22:04.011: E/AndroidRuntime(12269): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934) 12-28 16:22:04.011: E/AndroidRuntime(12269): ... 11 もっと見るE/AndroidRuntime(12269): android.app.Activity.performCreate(Activity.java:4465) 12-28 16:22:04.011: E/AndroidRuntime(12269): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java) :1052) 12-28 16:22:04.011: E/AndroidRuntime(12269): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934) 12-28 16:22:04.011: E/AndroidRuntime(12269): ... 11以上E/AndroidRuntime(12269): android.app.Activity.performCreate(Activity.java:4465) 12-28 16:22:04.011: E/AndroidRuntime(12269): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java) :1052) 12-28 16:22:04.011: E/AndroidRuntime(12269): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934) 12-28 16:22:04.011: E/AndroidRuntime(12269): ... 11以上

アップデート:

null ポインター例外の原因となるオブジェクトは、アダプターではなく Spinner です。ただし、R.id.themeSpinner は R で正しく参照されます。

4

2 に答える 2

0

あなたの言うことがすべて本当なら(1.確かにスピナー、2.それはスピナーでnullpointerをスローします.setAdapter(adapter);)

そうすれば、実際にインフレがうまくいかないことを安全に述べることができます.

setContentView(R.layout.activity_settings); で正しいレイアウトを使用していますか? スピナーは他のレイアウトから含まれていませんか?

于 2012-12-28T16:31:56.243 に答える
0

そうです、デバッグする必要があります。スピナー オブジェクトが null であることがわかります。これしかありません。プロジェクトをクリーンアップしてアプリを再インストールする必要があります。その後、動作するはずです。レイアウトで発生することがあります。

于 2012-12-28T15:40:20.187 に答える