2017-07-22 51 views
-1

我在這裏搜索了幾個帖子在stackoverflow,發現沒有談論遷移整數,嘗試了幾件事情,但它沒有成功。我是初學者,我可能錯過了一些愚蠢的東西,但我看不到它是什麼。如何接收其他活動的數據?

我正在設置一個測驗,有幾個活動,我想要做一個分數,爲每個活動的每個正確問題添加1分。

這是我的代碼不起作用。如果有人能幫助我,我很感激。

活動1

public class A_Activity extends AppCompatActivity { 
 

 
TextView score; 
 
int mScore = 0; 
 

 
@Override 
 
protected void onCreate(Bundle savedInstanceState) { 
 
    super.onCreate(savedInstanceState); 
 
    setContentView(R.layout.a_activity); 
 

 
    score = (TextView) findViewById(R.id.score); 
 
    score.setText("Score: " + mScore); 
 

 
} 
 

 
public void onClickTrue(View v) { 
 
    mScore++; 
 
    score.setText("Score: " + mScore); 
 

 
    Intent i = new Intent(this, B_Activity.class); 
 

 
    Bundle params = new Bundle(); 
 
    params.putInt("mScore", mScore); 
 
    i.putExtras(params); 
 
    startActivity(i); 
 
}

活動2(接收)

@Override 
 
protected void onCreate(Bundle savedInstanceState) { 
 
    super.onCreate(savedInstanceState); 
 
    setContentView(R.layout.b_activity); 
 

 
    Intent i = getIntent(); 
 
     if (i != null){ 
 
      Bundle params = i.getExtras(); 
 

 
      if (params != null){ 
 
       String mScore = params.getString("mScore"); 
 

 
       } 
 

 
     } 
 

 
}

如何解決這一問題?謝謝。

在第二活動
+0

爲什麼你不能用'params.getInt(String鍵)'? –

+0

這將工作100%:String mScore = getIntent()。getIntExtra(「mScore」,0); –

+0

你傳遞一個int(params.putInt(「mScore」,mScore))並期待一個字符串(params.getString(「mScore」))。你應該使用params.getInt(「mScore」) –

回答

0

當你把包你用putInt數據使用此代碼

Bundle i = getIntent().getExtras(); 

    if(i!=null) 
    { 
     int a = i.getInt("mScore"); // in first activity you are putting integer values 
     Toast.makeText(getApplication(), String.valueOf(a), Toast.LENGTH_SHORT).show(); 
    } 
+0

嗨,@ Salman500。好,非常感謝你,現在它正在工作。你知道我在新活動中如何使用這個變量嗎? –

+0

樂意幫忙:) – Salman500

+0

嗨,@ Salman500。你知道我在新活動中如何使用這個變量嗎? –

1

。 因此,在另一個活動中使用getIntExtra方法

String mScore = getIntent().getIntExtra("mScore", 0); 
相關問題