我有两个活动,它们通过每个活动的片段并排显示在一个屏幕上。当我单击一个活动上的按钮时,我想发送一个字符串,然后另一个活动应该检索我发送的字符串。
我知道用经典的方式setString()
和getString()
方法可以做到这一点。但我想知道,无论是否在新屏幕上打开目标活动,都可以完成putExtra()
吗getExtra()
?
我有两个活动,它们通过每个活动的片段并排显示在一个屏幕上。当我单击一个活动上的按钮时,我想发送一个字符串,然后另一个活动应该检索我发送的字符串。
我知道用经典的方式setString()
和getString()
方法可以做到这一点。但我想知道,无论是否在新屏幕上打开目标活动,都可以完成putExtra()
吗getExtra()
?
您可以将两个活动都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
进行空检查
您可以将意图作为广播发送,并让接收片段在该广播开始时注册到该广播(并在其销毁时取消注册)。
发送片段:
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);
}
}