2011-03-02 2 views
11

私はシーケンスの3番目のアクティビティに移動しようとしています。 メインのアクティビティから2番目のアクティビティにはうまくいきますが、2番目のアクティビティに移動しようとするとアプリケーションがクラッシュします。ここでAndroid:クリック時に別のアクティビティにどのように行くのですか?

は、第二の活動のために私のコードです:

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); 
    } 
} 
+1

はあなたがここに例外を貼り付けることができます試してみてください? ADB LOGCAT – Swaroop

+0

を使用してください。表示の代わりにボタンを2番目のアクティビティで使用し、ボタンのオブジェクトのビュー((Button)findViewById())を読み込みます。それはあなたの問題を解決するかもしれないし、他の人が理解できるように@swaroopがここにペーストの例外を言っているように。 – Ankit

+0

http://stackoverflow.com/questions/13194081/how-to-open-a-second-activity-on-click-of-button-in-android-app –

答えて

15

switch次のコードを試してみてください。

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

知らせます私はこれが役に立ちます.....

+1

なぜ例外ヘルプをキャッチするのですか? –

+0

必ずしも必要ではありませんが、開発中に役立ちます。 –

+3

例外をキャッチし、シグナルを表示せずにそれを飲み込むのは非常に悪い習慣です...もしメソッドのチェーンを上にしたくないのなら、少なくともメッセージやそのスタックトレースをコンソールに記録するか(より良い) –

0

それは

(コピー&ペーストのエラーはかなり共通している)
...
あなたの問題も donetwo_buttonmatrixtwo.xmlで宣言されていない場合にスローされるNullPointerExceptionが
が原因で発生することが ロングショットだけど...
8
Intent k = new Intent(Game.this, GameTwo.class); 
startActivity(k); 

これは機能しますが、マニフェストでこれを指定することも忘れないでください。

3

マニフェストに3つのアクティビティが宣言されていることを確認してください。アクティビティーを作成して宣言しないのが一般的なエラーです。

使用して新しいアクティビティを呼び出します。

Intent k = new Intent(Game.this, GameTwo.class); 
startActivity(k); 
0

この

Intent intent = new Intent(getApplicationContext(), GameTwo.class); 
startActivity(intent); 
関連する問題