2017-08-16 95 views
-1

我正在製作一款遊戲,這款遊戲有幾個關卡,但我必須爲每個關卡製作一個活動。在這個遊戲中,用戶在每關關閉後獲得5分並進入一個新的水平,意圖按鈕,我鑽進活動之間傳輸的分數和分數收集的問題/非常感謝你......如何在多個活動之間傳輸數據

score1 + score2 + score3 + ....


一個活動

 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()的你第二和第三個活動,您可以通過getIntent()訪問意圖。有了這個,你可以做這樣的事情:

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

從上一個活動檢索分數。

0

如果您想在多個活動中保留數據,可以有多種選擇,例如,包,共享首選項,SQLite數據庫等,但我會建議使用POJO。否則,如果是Bundle,則必須繼續將活動A中的分數傳遞給活動B,然後將活動C中的分數傳遞給活動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; 
    } 
} 
從您的任何活動

現在你可以檢索你的分數,甚至更新。

從活動設置分數:ScoreModel.setScore(<your value>);

從你的活動來獲取得分:int score = ScoreModel.getScore();

相關問題