Нужна помощь в выяснении, почему мое приложение не покидает главный экран после нажатия кнопки (что должно привести меня ко второму экрану активности) - PullRequest
2 голосов
/ 06 мая 2019

У меня есть основное занятие, где у пользователя есть 3 списка и 3 кнопки. Когда пользователь нажимает на 2 из трех кнопок, я хочу, чтобы пользователь был отправлен на другой экран (другой макет). У меня уже есть два других макета и два других класса. Я не уверен, почему это не работает. Мое приложение не сообщает ни об ошибках, ни предупреждениях, и я обнаружил, что не могу пошагово просмотреть свой код, потому что мой отладчик не работает.

У меня есть OnClickListner (в настоящее время я просто тестирую по одной кнопке за раз, чтобы исправить проблему), которая связана с кнопкой в ​​основной активности layout.xml android:OnClick. У меня есть намерение, установленное в основном действии, которое (согласно нескольким источникам и учебным пособиям на YouTube) настроено правильно, и новое действие, на которое должен быть перенаправлен пользователь, связано с соответствующим макетом. Когда я запускаю приложение, регистрируется нажатие кнопки (я знаю это, потому что у меня есть звуковой эффект при нажатии кнопки), но больше ничего не происходит. Также все мои действия присутствуют в файле AndroidManifest.xml. И все файлы действий находятся на одном уровне папок, все макеты находятся в res / layout

public class MainActivity extends AppCompatActivity {
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // instantiate button
        Button btnClicked = (Button)findViewById(R.id.goal);
final MediaPlayer mp = MediaPlayer.create(this, R.raw.click);
btnClicked.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, 
ChangeGoal.class));
mp.start();
            }
        });

// method called when set goal button is clicked
    public void setGoal(View view)

    {
        // intent to send user from main activity to the change goal 
activity
        Intent setGoal = new Intent(this, ChangeGoal.class);
        startActivity(setGoal);
    }
}

public class ChangeGoal extends AppCompatActivity {
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_change_goal);  // connect 
class to the other layout
    }
}

//button from activity_main.xml
<Button
            android:id="@+id/goal"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:text="@string/Set"
            android:onClick="setGoal"
            android:textSize="20sp"
            android:textColor="#000000"/>`

Опять же, я ожидаю, что нажатие кнопки из основного действия отправит пользователя в новое действие, где ему нужно сделать выбор, а затем вернуться к основному действию. Пока что нажатие кнопки регистрируется (я слышу это, поскольку я уже включил звук при нажатии кнопки), но приложение ничего не делает, я остаюсь на том же экране, и кнопку можно нажимать снова и снова.

1 Ответ

0 голосов
/ 07 мая 2019

В вашем Activity макете вы объявили это на вашем Button:

   android:onClick="setGoal"

Затем в коде вы прикрепили onClickListener к тому же Button. Это не верно. Сделайте либо одно, либо другое, но не оба.

...