Passing data between activities android
Possible Duplicate:
How do I pass data between activities in Android?
几天来,我一直在敲桌子试图解决这个问题。 我是Java和Android平台的新手,我正在编写我的第二个应用程序。 简而言之,我希望用户在第一个活动中输入一些信息。 然后,该活动接受这些输入并运行一系列数学计算,然后在单独的活动中将结果显示在几个editTexts中。 在我看来,应用程序接受输入,运行计算,然后将它们存储在一些变量中。 然后需要将变量传递给第二个活动,然后显示结果。 我有大部分应用程序编码,如果我保持输入并在一个活动中显示结果,我可以让它正常工作。 关于如何让显示的结果显示在另一个活动上的任何想法? 这里的任何方向都非常感谢。
这可以通过使用意图来完成。其中一个使用Intent是在活动之间传递数据。在您的场景中,您需要做的是
步骤1
从用户获取输入后,进行计算,存储结果
变量
捆绑您正在使用的意图
开始下一个活动。您可以通过以下代码实现此目的
1 2 3 4 | Intent intent = new Intent(); intent.putExtra("KeyForResult1", <your variable>); intent.putExtra("KeyForResult2",<your variable>); startActivity(this, nextactivity.class); |
在下一个活动中,您需要获取意图并提取变量中的值
这可以实现
1 2 | variabletype variable = getIntent().getExtras().get("KeyForResult1"); variabletype variable = getIntent().getExtras().get("KeyForResult2"); |
我能够通过我研究过的数据混合来解决这个问题。似乎终于有效了
1 2 3 4 5 | int resultInt=24; Intent myIntent = new Intent(CalPalActivity.this, ResultsActivity.class); myIntent.putExtra("intVariableName", resultInt); startActivity(myIntent); |
在第一个活动和
1 2 | Intent mIntent = getIntent(); int intValue = mIntent.getIntExtra("intVariableName", 0); |
在第二。为什么它像这样工作并一直给我错误,例如"Intent类型中的方法getIntExtra(String,int)不适用于我永远不会知道的第二个活动中的参数(String)"。即使是快速修复程序也没有解决它(我只是不断得到新的错误)。总而言之,这是一个昂贵的(5小时+),但很好的吸取教训。所有的帮助都非常感谢。我能够理解并学习更多关于语言的知识。谢谢!
你可以用这个:
ActivityOne.class:
1 2 3 4 5 6 7 8 9 10 | //compute the data and get the result here //suppose results are, int resultInt=24; String resultString="abc"; Intent intent=new Intent(getApplicationContext(),ActivityTwo.class); intent.putExtra("ResultInInteger",resultInt); intent.putExtra("ResultInString",resultString); startActivity(intent); |
这将打开ActivityTwo.class,您可以在其中获取如下数据:
1 2 | int resultInt=getIntent().getIntExtra("ResultInInteger"); String resultString=getIntent().getStringExtra("ResultInString"); |
这是一个选项。
在第一个活动:
1 2 3 | Intent yourNextActivityIn=new Intent(this,yourNextActivity.class); yourNextActivityIn.putExtra("tag",valueToBePassed); startActivity(yourNextActivityIn); |
在第二个活动中:
1 2 | //If value is an Integer with default value 1 int value = getIntent().getIntExtra("tag", 1); |
其他
1 2 | //if value is a string String value = getIntent().getStringExtra("tag"); |
有几种选择。对于你的任务,我选择在Intent的附加内容中传递数据。
对于所有选项阅读此内容
你应该阅读Intents。您可以在intent中存储额外内容,就像URL参数一样。如果您使用该意图开始下一个活动,它将能够从意图的附加内容中提取数据。