这是一个基本问题,但我需要一些帮助。Android:在两个活动之间切换并在它们之间共享信息
我有两个活动:actA,actB。 虽然在actA我想开始actB并给它一个字符串,比我想结束actB并返回另一个字符串actA(我不想去actA的onCreate(),我宁愿将此值返回给在Acta一些方法,因此可以从ACTB使用的字符串。
帮助表示赞赏
这是一个基本问题,但我需要一些帮助。Android:在两个活动之间切换并在它们之间共享信息
我有两个活动:actA,actB。 虽然在actA我想开始actB并给它一个字符串,比我想结束actB并返回另一个字符串actA(我不想去actA的onCreate(),我宁愿将此值返回给在Acta一些方法,因此可以从ACTB使用的字符串。
帮助表示赞赏
From A.java:
Intent myintentB=new Intent(A.this, B.class).putExtra("<StringName>", "Value");
startActivityForResult(myintentB, 3);
from B.java:
Intent myintentA=new Intent(B.this, A.class).putExtra("<StringName>", "Value");
finish();
setResult(3, myintentA);
In A.java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
String result_string=data.getStringExtra("<StringName>");
}
关于你的第一个问题,你可以通过使用方法intentname.putExtra("extravalue", value);
实际创建的意图之前给一个新的意向额外的价值。 然后,您可以在新创建的Activity中读取该值,我知道我在解释时非常糟糕,但是我希望您能从我从我制作的应用程序获取的这段代码获得想法。
ListLinks.java:
// Pass the value of the item URL to the linkviewer when a link is clicked
Intent openLink = new Intent(this, LinkView.class);
openLink.putExtra("url" , item.URL);
startActivity(openLink);
LinkView.java
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.linkview);
Bundle bun = getIntent().getExtras();
String url = bun.getString("url");
我不太清楚如何解决你的第二个问题,让我遗憾的是不能帮你这一个,但我肯定别人可能会。
在活动A:
Intent intent = new Intent();
intent.setClass (getApplicationContext(), ActB.class) ;
intent.putExtra ("data1","NEW STRING") ;
context.startActivityForResult(intent) ;
在活动B(onCreate方法):
Intent intent = getIntent() ;
if (intent.hasExtra("data1"))
String dataSent = intent.getStringExtra("data1") ;
虽然将数据发送回:
Intent intent = new Intent() ;
intent.putExtra ("Return" , "RETURN STRING") ;
setResult(RESULT_OK, intent) ;
finish() ;
在活性A:( onActivityResult)[您需要覆盖]
if (data.hasExtra("Return"))
String data1 = data.getStringExtra("Return");
下面还质疑链接的答案描述了,结果玩,使用onActivityResult()你正在寻找
相同的问题;在你的“A”活动中。 – DecodeGnome
什么是测试和数字3的含义是什么? – Belgi
3是requestCode。假设当你多次使用startActivityForResult()时,那么这个requestCode将会是onActivityResult中的标识符 –