Android: как перейти к другому действию при нажатии? - PullRequest
16 голосов
/ 02 марта 2011

Я пытаюсь перейти к третьему упражнению в последовательности.Переход от основного действия ко второму работает нормально, но когда я пытаюсь перейти к третьему действию со второго, приложение вылетает.

Вот мой код для второго действия:

package com.example.helloandroid;

import android.app.Activity;
//other imports here

public class Game extends Activity implements OnClickListener {

    private static final String TAG = "Matrix";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.matrix);
        View doneButton = findViewById(R.id.done_button);
        doneButton.setOnClickListener(this);
    }

    public void onClick(View v) { 
        switch (v.getId()) { 
            case R.id.done_button:
                Intent k = new Intent(this, GameTwo.class);
                startActivity(k);
                //finish();
                break;
        }
    }
}

и код для третьего занятия:

package com.example.helloandroid;

import android.app.Activity;
//other imports here

public class GameTwo extends Activity {

   private static final String TAG = "Matrix";

   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       this.setContentView(R.layout.matrixtwo);
       View donetwoButton = findViewById(R.id.donetwo_button);
   }
}

Ответы [ 5 ]

23 голосов
/ 02 марта 2011

Попробуйте следующий код в switch:

try {
    Intent k = new Intent(Game.this, GameTwo.class);
    startActivity(k);
} catch(Exception e) {
    e.printStackTrace();
}

Скажите мне, это полезно .....

9 голосов
/ 15 июня 2012
Intent k = new Intent(Game.this, GameTwo.class);
startActivity(k);

Это работает, но вы также хотите убедиться, что вы указали это в своем манифесте.

3 голосов
/ 16 июня 2012

Убедитесь, что три действия объявлены в манифесте.Распространенная ошибка при создании действия, а не при объявлении его.

Вызов нового действия с использованием:

Intent k = new Intent(Game.this, GameTwo.class);
startActivity(k);
1 голос
/ 20 февраля 2018

Попробуйте это

Intent intent = new Intent(getApplicationContext(), GameTwo.class);
startActivity(intent);
0 голосов
/ 02 марта 2011

Это длинный выстрел, но ...
Ваша проблема также может быть вызвана NullPointerException
который выбрасывается, если donetwo_button не объявлено в matrixtwo.xml ...
(Ошибки копирования-вставки довольно распространены)

...