Android. Как передать ```Context``` методу, если его вызов находится внутри слушателя?

package mate.files;

import static android.widget.Toast.LENGTH_LONG;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import org.json.JSONException;

import java.io.IOException;

public class welcome_theme_screen extends AppCompatActivity {
    String UITheme;
    int Theme;
    RadioGroup ThemeChooser = (RadioGroup) findViewById(R.id.themeChooser);
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_welcome_theme);
        getSupportActionBar().hide();
        //Title Font
        TextView textView = (TextView) findViewById(R.id.WelcomeTitle);
        Typeface typeFace = Typeface.createFromAsset(getAssets(), "Title.ttf");
        textView.setTypeface(typeFace);
        //Button Font
        Button button = (Button) findViewById(R.id.button);
        button.setTypeface(typeFace);
        //Write Default Theme
        try {
            new CfgMgr().Write(this, "UITheme", "Space");
        } catch (IOException e) {
            e.printStackTrace();
        }
        CheckBox EnableSched = (CheckBox) findViewById(R.id.EnableSched);
        ThemeChooser.setOnCheckedChangeListener(OnItemSelected);
    }

    RadioGroup.OnCheckedChangeListener OnItemSelected = new OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            Theme = ThemeChooser.getCheckedRadioButtonId();
            Toast.makeText(getBaseContext(), Theme, LENGTH_LONG).show();
            switch (Theme) {
                default:
                    break;
                case 0:
                    UITheme = "Space";
                    break;
                case 1:
                    UITheme = "Light";
                    break;
                case 2:
                    UITheme = "Dark";
                    break;
                case 3:
                    UITheme = "AMOLED";
                    break;
                case 4:
                    UITheme = "Pacifying";
                    break;
                case 5:
                    UITheme = "Desert";
                    break;
                case 6:
                    UITheme = "Beach";
                    break;
            }
            try {


//КАК передать контекст первым параметром? Через this ошибка Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference

                new CfgMgr().Write(this, "UITheme", UITheme);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    };



    public void NextClicked(View view) {
        Intent intent = new Intent(this, Welcome_Tabs_Screen.class);
        startActivity(intent);
    }

    public void EnableSchedClicked(View view) {
        CheckBox EnableSched = (CheckBox) findViewById(R.id.EnableSched);

        if (EnableSched.isChecked() == true) {
            EnableSched.setChecked(false);
            EnableSched2Clicked(EnableSched);
        } else {
            EnableSched.setChecked(true);
            EnableSched2Clicked(EnableSched);
        }
    }

        public void EnableSched2Clicked(View view) {
            CheckBox EnableSched = (CheckBox) findViewById(R.id.EnableTabs);
            String EnableSchedVarStr;
            if (EnableSched.isChecked() == true) {
                EnableSchedVarStr = "true";
            } else {
                EnableSchedVarStr = "false";
            }
    }
}

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