次のようにlayout.xmlに表示されるスピナーを含むJavaで記述されたAndroidアプリがあります。
<Spinner
android:id="@+id/sprDeviceType"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
これは、アクティビティクラスで次のように初期化されます。
public class AddDevice extends Activity
{
private Spinner deviceTypeSpinner;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.add); //Set the layout
populateDeviceTypeSpinner();
}
private void populateDeviceTypeSpinner()
{
String device_type_spinner[];
device_type_spinner = new String[2];
device_type_spinner[0] = "FTP";
device_type_spinner[1] = "QAF";
deviceTypeSpinner = (Spinner) findViewById(R.id.sprDeviceType);
ArrayAdapter deviceTypeArrayAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, device_type_spinner);
deviceTypeSpinner.setAdapter(deviceTypeArrayAdapter);
}
}
ただし、プログラムを実行すると、アクティビティは正常に開きますが、スピナーをクリックしてドロップダウンアイテムを取得すると、プログラムがクラッシュし、NullPointerExceptionがスローされます。
誰かが私が間違っているのを見ますか?
LogCatは次のことを示しています。
08-14 14:57:02.034: D/AndroidRuntime(1612): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
08-14 14:57:02.034: D/AndroidRuntime(1612): CheckJNI is OFF
08-14 14:57:02.074: D/AndroidRuntime(1612): --- registering native functions ---
08-14 14:57:05.004: D/AndroidRuntime(1612): Shutting down VM
08-14 14:57:05.014: I/AndroidRuntime(1612): NOTE: attach of thread 'Binder Thread #3' failed
08-14 14:57:05.184: D/AndroidRuntime(1637): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<
08-14 14:57:05.184: D/AndroidRuntime(1637): CheckJNI is OFF
08-14 14:57:05.224: D/AndroidRuntime(1637): --- registering native functions ---
08-14 14:57:05.524: D/AndroidRuntime(1637): Shutting down VM
08-14 14:57:05.544: I/AndroidRuntime(1637): NOTE: attach of thread 'Binder Thread #3' failed