Нужна помощь в получении моей кнопки «Play», чтобы отправить пользователя на его текущий уровень - PullRequest
0 голосов
/ 03 марта 2020

Я очень новичок в разработке приложений (4 дня), я создаю логическую c математическую игру с отдельными уровнями. Level1 отправляет ключ SharedPreferences «currentlevel» со ​​строковым значением «1». Приведенный ниже код работает, кнопка «Воспроизведение» отправляет меня на уровень 2, если я уже побил уровень 1.

Моя проблема заключается в том, что мне приходится дважды щелкать кнопку «Воспроизведение» вместо обычного одиночного щелчка. Я подозреваю его, потому что у меня есть 2 View.OnClickListeners, но удаление одного из них приводит к тому, что он вообще не работает. Любая помощь в решении этой проблемы с благодарностью.

    Button button1 = (Button) findViewById(R.id.playbutton);
  final Button button3 = (Button) findViewById(R.id.playbutton);

        SharedPreferences result = getSharedPreferences("level", MODE_PRIVATE);
        final String current = result.getString("currentlevel", "0");

            button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                button3.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {




                        Intent play2 = new Intent(MainActivity.this, Level2.class);
                        Intent play1 = new Intent(MainActivity.this, Level1.class);


                        if (current == "1")
                            startActivity(play2);

                        else if (current == "0")
                            startActivity(play1);

                    }
                });
            }});

1 Ответ

0 голосов
/ 03 марта 2020

Неважно, я заставил его работать, немного изменив условия. Разместите код ниже, если у кого-то еще возникла подобная проблема:

final Button button3 = (Button) findViewById(R.id.playbutton);
        final SharedPreferences sharedPref = getSharedPreferences("level", MODE_PRIVATE);
        final String current = sharedPref.getString("currentlevel", "sick");


        if(current == ("sicks"))
        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                        Intent play2 = new Intent(MainActivity.this, Level2.class);
                            startActivity(play2);
            }});

                 else if(current == ("sick"))
                button3.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {


                            Intent play1 = new Intent(MainActivity.this, Level1.class);
                        startActivity(play1);
                        }

                });
...