私はListActivity
にスピナーを使用し、NullPointerException
をsetAdapter
という方法で取得します。私はgoogleとstackoverflowで同様の問題を研究しようとし、彼らのアドバイスを試みたが役に立たなかった。しかし、このコードは私の別のアプリで動作します。NullPointerException - スピナーを使用
options = getResources().getStringArray(R.array.options_array);
Spinner s1 = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_dropdown_item, options);
s1.setAdapter(adapter); // Here is the error
s1.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
int index = arg0.getSelectedItemPosition();
Toast.makeText(getBaseContext(),
"You have selected item : " + options[index],
Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {}
});
マイスピナーXML
<Spinner
android:id="@+id/spinner1"
android:layout_width="25dip"
android:layout_height="25dip"
android:entries="@array/options_array"
android:prompt="@string/spin_prompt"
android:background="@drawable/expander_ic_maximized"
android:layout_alignParentRight="true"
android:layout_below="@id/name_text"
/>
LogCat
05-04 09:23:48.492: ERROR/AndroidRuntime(343): Caused by: java.lang.NullPointerException
05-04 09:23:48.492: ERROR/AndroidRuntime(343): at com.amannain.android.missedcalls.MissedCallsSpinActivity.runSpinner(MissedCallsSpinActivity.java:31)
05-04 09:23:48.492: ERROR/AndroidRuntime(343): at com.amannain.android.missedcalls.MissedCallsSpinActivity.onCreate(MissedCallsSpinActivity.java:21)
印刷s1を試してください。あなたはスピナーかオプションかどうかを知るために来るでしょう – sush
ありがとうございました。あなたは正しい方向に私を指差した。私の場合のスピナーは、別のXMLで定義されていて、私の現在のアクティビティで使用しているsetContentView(R.layout.main)には定義されていません。それはなぜNullPointerExceptionです。 CursorAdapterを使用してListViewを埋めているので、ここでスピナーコードをシフトしました。 – Harry