在两个Android活动之间通过意图传递增量值

3

我正在两个活动之间通过意图传递值,以动态更改数据。

我正在像这样在 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 新手,所以我的方法可能不正确。

谢谢!


1
你能分享更多的代码吗?你的问题还不够清楚。 - mrtpk
4个回答

2

1
我希望您可以将变量通过startActivityForResult()从主活动传递到结束活动,并在主活动上重写onActivityResult()方法以从结束活动获取变量。请查看此活动结果教程,阅读2.3子活动中检索结果数据的部分。

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

如果有帮助,请告诉我。检查这个链接


好问题,我遇到了一些传递整数的麻烦。虽然是的,我需要传递一个int值来节省自己的工作量。 - Ryan D

0
在编程中,当你按下home键时,需要在saveInstanceState()方法中保存bundle数据。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接