Ошибка при смене языка из адаптера

В RecyclerView список с CardView при нажатии на них должна происходить смена языка в приложении, но у меня приложение крашиться(

Ошибка в логах при нажатии

Process: com.example.funtura_new, PID: 12607
    java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
        at com.example.funtura_new.MainFragments.Home.Settings.Language.Adapter_Language.lambda$onBindViewHolder$0$Adapter_Language(Adapter_Language.java:74)
        at com.example.funtura_new.MainFragments.Home.Settings.Language.-$$Lambda$Adapter_Language$xquXjKmFLQD4_NGgPzac5zGONcY.onClick(lambda)
        at android.view.View.performClick(View.java:5692)
        at android.view.View$PerformClick.run(View.java:22596)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6397)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:939)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:829)

Изначально код для смены языка был такой

Locale locale = new Locale("ru");
Locale.setDefault(locale);
Configuration config = getBaseContext().getResources().getConfiguration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
      getBaseContext().getResources().getDisplayMetrics());

Но так как я использую его в Adapter то пришлось поменять getBaseContext() на Context.

public class Adapter_Language extends RecyclerView.Adapter<Adapter_Language.AttractionsViewHolder> {
    public ArrayList<Item_Language> mItem_Language;
    Context mContext;

    Locale locale = new Locale("ru");


    public Adapter_Language(ArrayList<Item_Language> favList, Context context) {
        mItem_Language = favList;
        mContext = context;
    }

    @NonNull
    @Override
    public AttractionsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_language, parent, false);
        return new AttractionsViewHolder(v);

    }

    public static class AttractionsViewHolder extends RecyclerView.ViewHolder {
        public ImageView iv_language;
        public TextView tv_language;
        public CardView cv_language;

        public AttractionsViewHolder(View itemView) {
            super(itemView);
            iv_language = itemView.findViewById(R.id.iv_language);
            tv_language = itemView.findViewById(R.id.tv_language);
            cv_language = itemView.findViewById(R.id.cv_language_);
        }
    }

    @Override
    public void onBindViewHolder(AttractionsViewHolder holder, int position) {
        Item_Language currentItem = mItem_Language.get(position);

        holder.getAdapterPosition();

        holder.cv_language.setOnClickListener(v -> {
            switch(currentItem.getInitialPositon()){
                case 0:{
                    Locale locale = new Locale("uk");
                    Locale.setDefault(locale);
                    Configuration config = mContext.getResources().getConfiguration();
                    config.locale = locale;
                    mContext.getResources().updateConfiguration(config,
                            mContext.getResources().getDisplayMetrics());
                    break;
                }
                case 1: {
                    locale = new Locale("en");
                    break;
                }
            }
        });
    }

    @Override
    public int getItemCount() {
        return mItem_Language.size();
    }

}

Помогите исправить

DialogFragment откуда создаётся адаптер

public class DialogLanguage extends DialogFragment {

    OnBackPressedCallback callback;

    static ArrayList<Item_Language> mList_Language;

    Context context;

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

        CardView close_dlang = view.findViewById(R.id.close_dlang);

        callback = new OnBackPressedCallback(true) {
            @Override
            public void handleOnBackPressed()
            {
                callback.setEnabled(false);
            }
        };
        requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);

        close_dlang.setOnClickListener(v -> dismiss());

        RecyclerView r_language = view.findViewById(R.id.r_language);


        mList_Language = new ArrayList<>();

        Adapter_Language Adapter_Language= new Adapter_Language(mList_Language, context);

        RecyclerView.LayoutManager RLM_Language;

        RLM_Language = new LinearLayoutManager(getActivity());

        r_language.setHasFixedSize(true);

        r_language.setLayoutManager(RLM_Language);

        r_language.setAdapter(Adapter_Language);

        CreateAttractions();

        return view;
    }

    public static void CreateAttractions()
    {
        mList_Language.add(new Item_Language(R.mipmap.ic_launcher,"awdawd", 0));
        mList_Language.add(new Item_Language(R.mipmap.ic_launcher,"awdawd",  1));
        mList_Language.add(new Item_Language(R.mipmap.ic_launcher,"awdawd", 2));
    }
}

Ответы (0 шт):