【问题标题】:Use Spinner and Adapter in Fragment在 Fragment 中使用 Spinner 和 Adapter
【发布时间】:2018-04-10 01:57:14
【问题描述】:

我在 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

【问题讨论】:

    标签: java android fragment spinner adapter


    【解决方案1】:
    Spinner categorySpinner = (Spinner) view.findViewById(R.id.category_spinner);
    

    使用视图代替容器

    【讨论】:

      【解决方案2】:

      您正在尝试调用空对象的方法,因为您没有为片段获取正确的上下文。

      更改以下行:

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

      收件人:

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

      【讨论】:

      • 不起作用并向我显示错误:java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference
      • 您是否在 xml 中为 category_spinner 设置了正确的活动上下文?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      • 2018-07-29
      • 1970-01-01
      • 2019-05-26
      • 1970-01-01
      • 2019-01-07
      • 2018-12-10
      相关资源
      最近更新 更多