0

私は自分の中でスピナーを使用し、 atメソッドListActivityを取得します。私はグーグルとstackoverflowで同様の問題を調査しようとし、彼らのアドバイスを試しましたが、役に立たなかった。ただし、このコードは私の別のアプリで機能します。NullPointerExceptionsetAdapter

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)
4

4 に答える 4

2
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_dropdown_item, **options**);

オプションの値はであるためnull、を取得しNullPointerExceptionます。値を確認してくださいoptions

于 2012-05-04T12:49:52.667 に答える
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.
于 2012-05-04T11:27:33.843 に答える
0

options(ArrayAdapterに渡される)の値はnullになると思います。log-catの「options」の値を表示してみてください。

于 2012-05-04T11:35:40.187 に答える
0

スピナーsetContentView(R.layout.main);を定義したアクティビティで以下を設定していますか?
このmain.xmlには、ID「spinner1」で定義されたスピナーコンポーネントが含まれている必要があります

于 2012-05-04T12:32:09.087 に答える