2016-11-01 9 views
0

Androidでは、簡単なゲームを作っています。このゲームは基本的にミニゲームで構成されています。各ミニゲーム、私は活動として作成しました。 ActivityA ActivityBとActivityCと呼んでみましょう。Android:1つのアクティビティでアクティビティの結果を聞く

これらの活動のうちの完了時に私はの完了時に(この用語を非常にゆるやかに)使用したいと思います。ユーザーがミニゲームを打ち負かすと、1は「ブロードキャスト」され、失われたときは-1になることがあります。

私はゲームを終了するときに知っているので、これらの "ブロードキャスト"を聞いてスコアを記録する必要があります。

これを把握するにはどうすればよいですか、どこから始めたらよいですか? 個人的には、メインメニューとゲーム画面の間に目に見えないアクティビティ(または多分サービス)があることを期待していました。

ありがとうございました!

答えて

2

startActivityForResultについて少しお読みください。

あなたはまた、別のアクティビティを開始し、あなたのMainActivityがonActivityResult()コールバックでそれを受け取るback.Then結果を受け取ることができるクイック概要
。その後
あなたは新しいクラスの意図を設定してから開始されたアクティビティを特定するための固有のコードでstartActivityForResultを呼び出す)

private void startActivityA() { 
    Intent intent = new Intent(this, ActivityA.class); 
    startActivityForResult(intent, ACTIVITY_A_CODE); 
} 

private void startActivityB() { 
    Intent intent = new Intent(this, ActivityB.class); 
    startActivityForResult(intent, ACTIVITY_B_CODE); 
} 

private void startActivityC() { 
    Intent intent = new Intent(this, ActivityC.class); 
    startActivityForResult(intent, ACTIVITY_C_CODE); 
} 

:あなたの「MainActivity」あなたはこのようなものを持っているでしょうに

あなたのMainActivityでonActivityResultメソッドを実装します。これは、以下のように開始されたアクティビティ(* _CODE)をチェックし、結果がOKかどうかをチェックします。あなたはAndroidのドキュメントからstartActivityForResultについてをより詳細に読んでくださいsetResult()


で、あなたのcriteriasに基づいて、結果を設定する必要があり、あなたの新しい活動において

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // Check which request we're responding to 
    if (requestCode == ACTIVITY_A_CODE) { 
     // if the result of the activity was good, then: 
     if (resultCode == RESULT_OK) { 
      // score++; 
     } else { 
      // score--; 
     } 
    } 
    else if (requestCode == ACTIVITY_B_CODE) { 
     // .... 
    } 

} 


+0

基本的にダミーのアクティビティです。これは、私がそれをどのように描いているのかとほとんど同じです。私はあまりにも多くの時間を費やす前に確認したかっただけです。 答えをありがとう! –

1

私たちは、あなたがMainActivity、ActivityAとActivityB持っていると思われる場合:あなたは、DBへの結果データを保存し、バックMainActivityにし、その結果を処理することができActivityAで

1。 Androidのライフサイクルを確認する前にhttps://developer.android.com/training/basics/activity-lifecycle/index.html

2データを直接返すことができます。チェックAndroid return data to previous activity

私の意見では、最初の方法が優れています。それはより多くの機会があるからです。どのような状況でも、あらゆる種類のデータを保存できます。 (OnClose)

関連する問題