2017-08-16 5 views
-1

私はゲームを作っていますが、このゲームには複数のレベルがありますが、各レベルのアクティビティを作成する必要があります。このゲームでは、各レベルの終了後に5次の目的ボタンでレベル、そして、私はどうもありがとうございました...複数のアクティビティ間でデータを転送する方法

SCORE1 + score2 + score3 +活動や収集得点/間のスコアを転送するのに問題になった....


1つのアクティビティ

 button2.setVisibility(View.VISIBLE); 
    button2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent=new Intent(L1.this,L2.class); 

      intent.putExtra("key",score); 
      startActivity(intent); 
     } 
    }); score += 5; 
    ((TextView) findViewById(txt_score)).setText(getString(R.string.score) + " " + score); 
}} 


2アクティビティ

??????? 

3活動

?????? 

答えて

0

次の活動に必要なコードは、あなたの)のonCreate(で、意図にスコアを入れているしてくださいので、 2番目と3番目のアクティビティは、getIntent()を使用してインテントにアクセスできます。これで、次のようなことができます:

int previousScore = getIntent().getIntExtra("key", -1); 

前回のアクティビティからスコアを取得する。

0

複数のアクティビティにまたがってデータを保持する場合は、複数の選択肢があります。バンドル、共有設定、SQLiteデータベース、などが、私はPOJOを使用することをお勧めします。それ以外の場合は、バンドルの場合は、アクティビティAからアクティビティB、アクティビティCなどにスコアを引き続き渡す必要があります。また、データが捨てられると、共有された環境設定やSQLiteが役に立たないかもしれません。まず、簡単なモデルクラスを作成してください。

public class ScoreModel { 
    private static int mScore; // note the static modifier 

    // create setters/getters 
    public static void setScore(int score) { 
     mScore = score; 
    } 

    public static int getScore() { 
     return mScore; 
    } 
} 

あなたのアクティビティから、スコアを取得して更新することもできます。 int score = ScoreModel.getScore();

:スコアを取得するために、あなたの活動から ScoreModel.setScore(<your value>);

:スコアを設定するには、あなたの活動から

関連する問題