Mainactivity.this нельзя ссылаться из статического контекста внутри Intent - PullRequest
0 голосов
/ 30 июня 2019

Добрый день,

Я уже давно борюсь с этой проблемой, и в качестве последнего средства я решил использовать StackOverflow, так как я обычно не люблю беспокоить людей своими проблемами.Надеюсь, это быстрое решение, которое кто-то может указать мне.У меня есть этот код:

public static void setConsoleText(final String s, final String bA)
    {

        if(bA.substring(0,5).contains("event")){
            if(bA == "event.1"){
                Intent intent = new Intent(game.this, popup.class);
                Bundle b = new Bundle();
                b.putInt("id", 1);
                intent.putExtras(b);
                startActivity(intent);
            }
    }

В другой деятельности в функции onClose () я вызываю setConsoleText ().В setConsoleText у меня есть две ошибки.Один с game.this, а другой с startActivity (intent);

Я получаю ошибку com.ex.example.game.this ', на которую нельзя ссылаться из статического контекста, и аналогичную ошибку для стартовой активности.Кто-нибудь сможет указать, что я могу сделать, чтобы решить эту проблему?

Мой всплывающий код:

public class popup extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_popup);

        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);

        int width = dm.widthPixels;
        int height = dm.heightPixels;

        getWindow().setLayout((int)(width*.8),(int)(height*.6));

        Button btnA = (Button)findViewById(R.id.btn1);

        btnA.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });


    }



    @Override
    protected void onStop() {
        super.onStop();

        game.setText("hello","Continue", game.this);
    }
}

Мой основной код:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game);

    btnA = (Button)findViewById(R.id.OptionA);

public static void setText(final String s, final String bA, Activity activity)
{

    if(bA.substring(0,5).contains("event")){
        if(bA == "event.1"){
            Intent intent = new Intent(activity, popup.class);
            Bundle b = new Bundle();
            b.putInt("id", 1);
            intent.putExtras(b);
            activity.startActivity(intent);
        }

}}

...