我在ListActivity
中使用微调器并在NullPointerException
方法下获得setAdapter
。我试图在谷歌和stackoverflow上研究类似的问题,并尝试了他们的建议但没有用。但是,此代码适用于我的另一个应用程序。
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)
答案 0 :(得分:2)
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_dropdown_item, **options**);
由于您的选项值为null
,因此您获得了NullPointerException
。检查options
值。
答案 1 :(得分:0)
这些修改可能对您有帮助..
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_dropdown_item, options);
Here instead of ArrayAdapter you can use SpinnerAdapter, Please modify your code and let me know.
答案 2 :(得分:0)
我认为选项中的值(传递给ArrayAdapter)是空的。尝试在log-cat中查看“options”的值。
答案 3 :(得分:0)
您是否在定义了微调器的活动中设置了以下内容
的setContentView(R.layout.main);
这个main.xml应该使用id“spinner1”