2010-12-13 13 views
1

別のアクティビティからメソッドを呼び出すにはどうすればよいですか? 私の主な活動では、ゲームの難易度を設定するためのダイアログを表示するボタンがあります。 次に、すべてのゲーム情報を含むビューを含む新しいアクティビティを開始する「開始ゲーム」をクリックします。 選択した難易度レベルを他のアクティビティに送信する必要がありますが、どのようにするかわからないようです。他のアクティビティからのAndroidコールメソッド

答えて

6

あなたが意図して余分にそれを置くことができます:

Intent StartGame = new Intent(this, StartGame.class); 
StartGame.putExtra("difficulty", difficultyLevel); 
startActivity(StartGame); 

次に、あなたのStartGame.classにあなたがこの(その文字列を想定)のようにそれをretriveことができます。

Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
    String difficulty= extras.getString("difficulty"); 
} 
+0

ああ、ありがとう! – semajhan

+0

私はそれと同じやり方をしていますが、それ以外の方法はありませんか?したがって、最初に目的のアクティビティでGetExtras()をチェックしてから、メソッドを呼び出すのではなく、インテントを開始したアクティビティから直接メソッドを呼び出すことができます。 – Vincent

6

まあI私のソリューションがどのように健全かはわかりませんが、アプリケーションクラスのサブクラスであるmyApplicationクラスを作成しました。

これは私がPostAndViewActivityはOnCreate関数自体を指すようにPVをセットで呼び出すと

import android.app.Application; 

public class myApplication extends Application { 
    public PostAndViewActivity pv; 
} 

を呼び出すために望んでいた活動への参照を保持しています。

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    ((myApplication) getApplication()).pv = this; 

それから私は、私はちょうどこのようなコードを使用したいメソッド呼び出したいとき:

((myApplication) getApplication()).pv.refreshYourself(); 

おそらく、少しハックが、それは.....作品 私は、このためのいくつかのcritisismを歓迎;-)

関連する問題