如何接收其他活动的数据?

时间:2017-07-22 19:54:52

标签: java android

我在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");

                }

        }

}

我如何解决这个问题?感谢。

2 个答案:

答案 0 :(得分:1)

当您将数据放入数据包时,您使用了putInt。 因此,在另一个活动中使用getIntExtra方法

String mScore = getIntent().getIntExtra("mScore", 0);

答案 1 :(得分:0)

在第二个活动中使用此代码

 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();
    }