Android在2个活动之间传递意图增量值

时间:2016-09-02 17:56:51

标签: java android android-intent increment

我在两个活动之间传递一个意图值来动态更改数据..

我正在onCreate的家庭活动中从结束活动传递的价值如此 -

// Get Variable From Home Activity
    Bundle extras = getIntent().getExtras();
    String curhole;
    curhole = extras.getString("hole");
    TextView holeno = (TextView) findViewById(R.id.holeNumber);
    holeno.setText(String.valueOf("Hole " + curhole));

我在家庭活动中有这个onClick功能 -

@Override
public void onClick(View v) {
    // Get Variable From Home Activity
    Bundle extras = getIntent().getExtras();
    String curhole;
    curhole = extras.getString("hole");

    Intent myIntent = new Intent(this, end.class);
    myIntent.putExtra("hole",curhole);
    startActivity(myIntent);

}

然后在我的最后活动中,我抓住了这个值并将其传递回家庭活动 -

@Override
 public void onClick(View v) {
    Bundle extras = getIntent().getExtras();
    String curhole;
    curhole = extras.getString("hole");

    int incHole = Integer.parseInt(curhole);
    incHole++;
    String.valueOf(incHole);

    Intent myIntent = new Intent(this, hole.class);
    myIntent.putExtra("hole",incHole);
    startActivity(myIntent);

}

当我点击主页活动按钮转到结束活动并返回主页时,它表示值为空。任何想法为什么?我是android的新手,所以我确定我的方法可能很糟糕。

谢谢!

4 个答案:

答案 0 :(得分:2)

可能是因为您需要获取onResume()中的值,因为看起来您不会查看Home活动,因此不会再次调用onCreate()

你可能想在这种情况下使用startActivityForResult(),但通过这种方式会有效。

此外,Intent有一个[getIntExtra()](https://developer.android.com/reference/android/content/Intent.html#getIntExtra(java.lang.String,int))方法,因此我不确定您是否需要进行所有正在进行的转换。

答案 1 :(得分:1)

分享更多。为什么要将int作为String发送?

int incHole = Integer.parseInt(curhole);
incHole++;
//Should work as String or int
Intent myIntent = new Intent(this, hole.class);
myIntent.putExtra("hole", incHole);
startActivity(myIntent);

如果有帮助,请告诉我。请检查此link

答案 2 :(得分:1)

我会通过home活​​动的意图传递给变量的end活动,但是以startActivityForResult()开始活动;然后在家庭活动上你应该重写onActivityResult();从结束活动中获取变量的方法。

检查this tutorial of activity result阅读2.3。从子活动中检索结果数据

答案 3 :(得分:0)

按home键然后在saveInsatance()活动方法中保存包。