gpt4 book ai didi

android - 在 Activity 之间改变焦点

转载 作者:行者123 更新时间:2023-11-30 03:25:50 28 4
gpt4 key购买 nike

我创建了两个 Activity (ActivityAActivityB),我想在它们之间切换,即:

  • 当用户点击 ActivityA 中的按钮时,我转到 ActivityB
  • ActivityB 中,用户插入一条消息,然后通过按下按钮转到 ActivityA

但是,我无法检索来自 ActivityB 的消息。

我在下面描述了我的代码。

要求ActivityB开始(从ActivityAActivityB)

Intent intent = new Intent(this, ActivityB.class);
startActivity(intent);

要求ActivityA开始(从ActivityBActivityA)

Intent intent = new Intent(this, ActivityA.class);
String message = "some text";
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);

问题

ActivityA中处理intent的代码应该放在哪里,如下所示?

Intent intent = getIntent();
String message = intent.getStringExtra(ActivityB.EXTRA_MESSAGE);

我无法在 onResume()onRestart() 方法中检索它,因此我显然在处理 Activity 生命周期时遗漏了一些东西。

另外,我每次回调ActivityA时,都会回调onCreate()方法,也就是说每次都销毁activity,这不是我想的想要。

提前致谢。

最佳答案

使用以下代码从 ActivityA 调用 ActivityB。

   Intent intent = new Intent(this, ActivityB.class);
startActivityForResult(intent,0); // '0' is requestcode

当用户使用以下代码输入从 ActivityB 返回的消息时。

 Intent intent = new Intent();
Bundle b = new Bundle();
b.putString("messagekey",your_message);
intent.putExtras(b);
setResult(1,intent); // here '1' is resultcode
finish();

并重写 ActivityA 中的 OnActivityResult 方法,如下所示

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0 && resultCode == 1)
{
if (data != null) {
if (data.getStringExtra("messagekey") != null) {
String message_from_activityB = data.getStringExtra("messagekey");
}
}
}
}

关于android - 在 Activity 之间改变焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18271129/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com