在Android活动之间传递值
我知道这个主题是错误的,但我仍然找不到我的问题的答案 我正在运行一个在Android活动之间传递值,android,android-intent,Android,Android Intent,我知道这个主题是错误的,但我仍然找不到我的问题的答案 我正在运行一个活动1 我从activity1启动activity2: Intent newIntent1 = new Intent(this,activity2.class); startActivity(newIntent1); 我在activity2中得到一些值,我需要将它们作为字符串返回给activity1 如果我使用: Intent newIntent = new Intent(this,activity1.class); newI
活动1
我从activity1
启动activity2
:
Intent newIntent1 = new Intent(this,activity2.class);
startActivity(newIntent1);
我在activity2中得到一些值,我需要将它们作为字符串返回给activity1
如果我使用:
Intent newIntent = new Intent(this,activity1.class);
newIntent.PutExtra("dataname",SomeString);
startActivity(newIntent);
我再次启动了
活动1
。但是我需要将SomeString
从activity2
返回到原始的activity1
。因此,我是否应该使用其他方法而不是意图?以startActivityForResult
的形式启动activity2,并使用setResult()
方法将数据从activity2发送回activity1。在activity1中,您需要覆盖ActivityResult上的以更新来自activity2的数据
尝试如下:
从Acivity1启动活动2的方式为:
Intent intnt = new Intent(this, activity2.class);
startActivityForResult(intnt, 1);
在活动2中使用设置结果将数据发送回:
Intent intent = new Intent();
intent.putExtra("keyvalue","value_here")
setResult(RESULT_OK, intent);
finish();
在活动1中以活动结果的形式接收数据
:
onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == RESULT_OK){
String stredittext=data.getStringExtra("keyvalue");
}
}
最简单的方法是将主活动类(而不是onCreate方法)中的字符串声明为静态,并在希望引用该字符串的活动中访问该字符串
其他活动中的MainActivity.stringName和as
MainActivity中的stringName。到目前为止,您做得还不错,只需请求已设置的值
在oncreate中(在activity1中的案例中)
try-startActivityForResult();您可以在启动activity2时使用startActivityForResult(),也可以在activity2中使用setResult()。然后进入活动结果进入活动1。使用此链接。为什么要投否决票???你能解释一下吗?DownVoter在downvoting之前一定要清除这些内容。在这种情况下:onActivityResult(requestCode=1,resultCode=RESULT\u OK,那么什么是数据?)当您将结果从第二个活动传递回第一个活动时,它将出现在ActivityResult中,如果数据成功传递,结果代码将是result\u OK
@安德烈·卡巴尔马莱伊卡
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity1);
Bundle extras = getIntent().getExtras();
if(extras != null)
{
String value = extras.getString("dataname");
}
}