Android - 抽屉 - 无法在 3 个类似文件中 found/resolved 充气机 activity

Android - Drawer - Cannot found/resolved inflator activity in 3 similiar files

我现在正在编写教程,我正在创建一个 Android 抽屉。

Java - 文件:
- 主要活动 - 导航抽屉片段 - 关于我片段 - 联系信息片段 - 我的公司片段

XML- 文件:
-activity_main -fragment_about_me -fragment_contact_info -fragment_my_company fragment_navigation_drawer - fragment_main

AboutMeFragment、ContactInfoFragment、MyCompanyFragment这三个文件包含几乎相同的代码。

package blabla.app1;

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


public class AboutMeFragment extends Fragment {

public static AboutMeFragment newInstance(){

    AboutMeFragment fragment = new AboutMeFragment();
    return fragment;
}


public AboutMeFragment(){}


@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {


    View rootView = inflator.inflate(R.layout.fragment_about_me, container, false);
    return rootView;
}

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

    ((MainActivity) activity).onSectionAttached(1);

}
}

总而言之,我收到以下错误消息: 1. "inflater": 无法解析符号充气器 2. "activity": 无法解析符号 activity

谢谢

第一个错误很容易解决,只是一个拼写错误。您的方法显示 onCreateView(LayoutInflater inflater... 但是当您在方法中使用它时拼写为 inflator,它不存在,只需将其更改为 inflater.

第二个有点复杂,您的教程可能会使用

public void onAttach(Activity activity)

但现在已弃用并替换为

public void onAttach(Context context)

这就是activity无法解析的原因,你没有什么叫'activity'的。解决这个问题的最快方法并且仍然主要跟随你的教程可能是将上下文转换为 activity 像这样:

    @Override
public void onAttach(Context context) {
    super.onAttach(context);
    if(context instanceof Activity) {
        MainActivity activity = (MainActivity) context;
        activity.onSectionAttached(1);
    }
}