我在我的ListActivity
中使用微調框,並在setAdapter
方法中獲得NullPointerException
。我試圖研究谷歌和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。你會知道什麼是投擲null ..無論是微調還是選項 – sush
謝謝Sush。你指出我正確的方向。在我的情況下,微調框在另一個xml中定義,而不是在我當前使用的setContentView(R.layout.main)中。那就是爲什麼NullPointerException。我正在使用CursorAdapter填充ListView,現在我將微調代碼移到了那裏。 – Harry