如何在片段内的Spinner的onItemSelected()中使用getApplication()?

时间:2018-07-27 15:55:27

标签: java android nullpointerexception fragment

我正在尝试在getApplication()的{​​{1}}方法中使用Spinner来尝试使用onItemSelected()获得ViewModel。我现在很喜欢4个内部类,并且在启动此活动后几秒钟遇到了ViewModelProviders崩溃。

问题标题非常准确地概括了我的问题。

这是java.lang.NullPointerException的{​​{1}}方法:

Fragment

这是我的堆栈跟踪:

onCreateView()

1 个答案:

答案 0 :(得分:0)

覆盖 onAttach()以获取活动,如下所示,

private Activity mActivity;

@Override
public void onAttach(Context context) {
    super.onAttach(context);

    if (context instanceof Activity){
        mActivity=(Activity) context;
    }

}

然后使用 mActivity.getApplication()访问应用程序对象。

如果需要应用程序上下文,则可以从adapterView中获取应用程序上下文,

  

adapterView.getContext()。getApplicationContext()

如果您的片段附加到MenuActivity,则可以按以下方式获取应用程序对象,

  

(((MenuActivity)adapterView.getContext())。getApplication()