私は最初のアンドロイドアプリを開発中で、spinner
を私のビューに追加しようとしています。 Android Developers Guideを見て、それを私のビューに追加する方法と実際にアイテムをスピナーに追加する方法を考えました。私は実際にアイテムを追加しようと、次のときを除き初期化されたオブジェクトのNullPointerException
がポップアップ表示されます:
Java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference
あなたは私がスピナーオブジェクト上.setAdapter()
を実行しようとして見ることができるように。私はスピナーオブジェクトを初期化せずにこれをしようとするだろう場合は通常、このエラーが発生しますが、私はなかった:私はそれは問題ではないsetContentView()
を呼び出した後
Spinner spinner = (Spinner) findViewById(R.id.where_spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.where_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
上記のコードは、すべてと呼ばれています。
スピナーのような単純なことが私に大きなトラブルを引き起こしているのはどうでしょうか?
ありがとうございました。
EDIT
私は特定のコメントを見た後、私はwhere_spinner
が含まれているレイアウトファイルダイアログのために使用するレイアウトであることを追加するのを忘れたことを見ました。 where_spinner
にアクセスできるようにする必要があります。レイアウト内の他のオブジェクトも同じですからです。
'findViewById'は' null 'を返すことができます –
'spinner'はnullです。 'setContentView()'で設定したレイアウトは実際には 'where_spinner'を持っていますか?フラグメントレイアウト? – laalto
@laaltoそれはしません。 'where_spinner'はダイアログに使われているレイアウトファイルにありますが、私は同じレイアウトの他の要素でこれを行うことができるので、大したことではないと思っていました。 –