2012-01-13 14 views
0

私のアプリケーションのメニュークラスでは、アクティビティを開始するボタンが必要です。アクティビティのサブクラスではないため、StartActivity()メソッドでは動作しません。どうすればいいですか?startActivity()または他の提案はありますか?

「初心者向けのAndroidゲーム」を読んでいる場合、6章でヘビのゲームをやっているときに、私がアクティビティを開始したいときのような漫画の様子を見ることができます。

//ダニエル

答えて

2

いずれに以下のようなコンストラクタを使用してコンテキストを渡すか、または静的メソッドにそれを渡します

private Context context; 

public MenuClass(Context context){ 
    this.context = context; 
} 

private void someMethod(){ 
    // Do your stuff 
    startNextActivity(); 
} 

private void startNextActivity(){ 
     context.startActivity(context, OtherClass.class); 
} 

staticメソッド:

public static void startNextActivity(Context context){ 
     context.startActivity(context, OtherClass.class); 
} 

// Use 
MenuClass.startNextActivity(someContext); 
+0

コンストラクタにコンテキストがありません – Daniel

+0

そのシグネチャを持つコンストラクタを作成します。自分のクラスに必要なコンストラクタを作成することができます! – Blundell

+0

私はそれを修正しました、皆さんのおかげで、ありがとうございました! – Daniel

0

あなたが活動ではないクラスから起動する場合はContext.startActivity()を使用してください。

+0

をしかし、この方法のstartActivityは、静的なものではありませんそれは動作しません。 – Daniel

+0

dtmilanoはコンテキストコンテキストのインスタンスとしてここに「コンテキスト」を意味します – matsjoe

+0

私はそれを修正しました、それは皆さんのおかげです、ありがとうございました! 私が持っていたすべてのコンストラクターにコンテキストを追加しました。 – Daniel

2

あなたはインテントを使用していますか?

Intent it = new Intent(firstActivity.this, secondActivity.class); 
startActivity(it); 

コンテキストをそのクラスに渡して、目的に合わせてstartActivityを呼び出します。

Intent it = new Intent(firstActivity.this, secondActivity.class); 
context.startActivity(it); 
+0

それは問題ではありません。 – Daniel

+0

私の編集を見て、それをContextオブジェクトで呼び出す必要があります。それを他の場所から渡して使用する必要があります。 –

+0

ビューにコンテキストがないので、eatherが動作するようになりました。( – Daniel

関連する問題