2017-10-28 318 views
2

我在Activity工作中運行下面的代碼但我在Fragment中運行下面的代碼不起作用。我需要在Fragment中使用此代碼。我是一名初學者。請幫幫我。在片段中使用微調器和適配器


代碼片段中:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    view = inflater.inflate(R.layout.fragment_filter, container, false); 

    Spinner categorySpinner = (Spinner) container.findViewById(R.id.category_spinner); 
    ArrayAdapter<CharSequence> categoryAdapter = ArrayAdapter.createFromResource(getContext(), R.array.cat, R.layout.row_spinner); 
    categorySpinner.setAdapter(categoryAdapter); 

    return view; 
} 

我改變getContext()getActivity()thisthis.getActivity但不起作用。


錯誤(categorySpinner.setAdapter(categoryAdapter):

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference 

回答

0
Spinner categorySpinner = (Spinner) view.findViewById(R.id.category_spinner); 

使用視圖,而不是容器

+0

這是正確的方式 謝謝... –

0

你試圖調用的方法的空對象,因爲你沒有得到你的片段正確的上下文。

更改以下行:

Spinner categorySpinner = (Spinner) container.findViewById(R.id.category_spinner); 

要:

Spinner categorySpinner = (Spinner) getActivity().findViewById(R.id.category_spinner); 
+0

這麼想的工作,並展現給我的錯誤:'java.lang中.NullPointerException:嘗試在空對象引用上調用虛擬方法'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' nce' –

+0

您是否在您的xml中爲該category_spinner設置了正確的活動上下文? – Miguel

+0

我編輯我的問題。請檢查一下。 –