我有两个活动,通过每个活动的片段并排显示在一个屏幕上。 当我点击其中一个活动上的按钮时,我想发送一个字符串,然后另一个活动应该检索我发送的字符串。
我知道可以使用经典方式setString()
和getString()
方法来实现这一点。但我想知道,如果不在新屏幕上打开目标活动,可以使用putExtra()
和getExtra()
来完成吗?
我欢迎任何解决方案。 谢谢
答案 0 :(得分:0)
您可以将活动的 intent
作为全局变量,并尝试使用一个活动中的putExtra()
,然后使用另一个活动getExtra()
活性。
例如,
public class activityOne extends Activity
{
public static Intent intent = null;
@Override
protected synchronized final void onCreate(final Bundle savedInstanceState)
{
intent = getIntent();
}
}
public class activityTwo extends Activity
{
public static Intent intent = null;
@Override
protected synchronized final void onCreate(final Bundle savedInstanceState)
{
intent = getIntent();
}
}
现在,无论您想要什么,都可以访问他们的意图,例如activityOne.intent,activityTwo.intent
,然后 null 检查
答案 1 :(得分:0)
您可以将意图作为广播发送,并在其开始时将接收片段注册到该广播(并在其销毁时取消注册)。
发送片段:
Intent intent= new Intent(PARAM_TRANSFER);
intent.putExtra(key, extra);
sendBroadcast(intent);
接收片段:
寄存器:
IntentFilter intentFilter = new IntentFilter(PARAM_TRANSFER);
registerReceiver(mReceiver, intentFilter);
注销:
try {
unregisterReceiver(mReceiver);
} catch (Exception e) {}
获得参数:
private class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
intent.getExtra(key);
}
}