Java 无法将MainActivity转换为接口

Java 无法将MainActivity转换为接口,java,android,interface,Java,Android,Interface,我正在尝试使用接口在片段之间共享变量。我的问题是我遇到了以下错误:java.lang.ClassCastException:com.example.application.activities.main无法将活动强制转换为com.example.application.ListGeneratedInterface 以下是我的片段的一部分: public class MealsFragment extends Fragment { View view; EditText numb

我正在尝试使用接口在片段之间共享变量。我的问题是我遇到了以下错误:
java.lang.ClassCastException:com.example.application.activities.main无法将活动强制转换为com.example.application.ListGeneratedInterface

以下是我的片段的一部分:

public class MealsFragment extends Fragment {

    View view;
    EditText numberText;

    public ListMealsInterface listMealsInterface;
    public ListGeneratedInterface listGeneratedInterface;
    ArrayList<Meal> listMeals = new ArrayList<Meal>();
    ArrayList<Meal> generatedList = new ArrayList<Meal>();

    private static final String PREFS = "PREFS";
    SharedPreferences sharedPreferences;

    @Override
    public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.meals_fragment, container, false);
        numberText = (EditText) view.findViewById(R.id.number_meals);

        listMealsInterface = (ListMealsInterface)getContext();
        listMeals = listMealsInterface.getList();

        //The error comes from here
        listGeneratedInterface = (ListGeneratedInterface)getContext();
        generatedList = listGeneratedInterface.getListGenerated();

        Button generateButton = view.findViewById(R.id.generate_list_button);
        generateButton.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(getNumberMeals() <= maxSavedMeals() ) {
                    closeKeyboard(view);
                    saveNumberInSP();
                    resetIsPresent();
                    loadFragment(new ListGeneratedFragment());
                }

                else {
                    Toast.makeText(getContext(), getString(R.string.number_meals_over_limit), Toast.LENGTH_SHORT);
                }
            }
        });

        loadFragment(new ListGeneratedFragment());
        return view;
    }
}
公共类MealsFragment扩展片段{
视图;
编辑文本编号文本;
公共ListMeasInterface ListMeasInterface;
公共列表生成接口列表生成接口;
ArrayList ListFinds=新的ArrayList();
ArrayList generatedList=新建ArrayList();
私有静态最终字符串PREFS=“PREFS”;
SharedReferences SharedReferences;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.U碎片,容器,假);
numberText=(EditText)view.findViewById(R.id.number\u);
ListMealInterface=(ListMealInterface)getContext();
listMealsInterface.getList();
//错误来自这里
listGeneratedInterface=(listGeneratedInterface)getContext();
generatedList=listGeneratedInterface.getListGenerated();
Button generateButton=view.findViewById(R.id.generate_列表_按钮);
generateButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){

如果(getNumberMeals()是实现该接口的MainActivity?不,不是,因为我要共享的变量是在另一个片段中创建和定义的。您能否精确指定变量的类型?并给它们一个更精确的名称,因为“我要共享的变量是在哪里创建的,它只返回变量。”litlle是否不清楚。变量是否总是一样的?我的变量是
ArrayList generatedList
。它是在片段a中创建的,但我需要在另一个片段中使用它。为此,我创建了ListGeneratedInterface,它是定义的(使用@Override)在片段A中。但是当我尝试在上面的片段中使用它时,我得到了我发布的错误。我认为问题来自使用
getContext()
,因为MainActivity没有实现ListGeneratedInterface(正如片段A中定义的generatedList)。您可以看到我在上面的代码中成功地实现了ListMealInterface,这是在MainActivity中实现的
package com.example.application;

import java.util.ArrayList;

public interface ListGeneratedInterface {
    public ArrayList<Meal> getListGenerated();
}