0

我有两个活动,它们通过每个活动的片段并排显示在一个屏幕上。当我单击一个活动上的按钮时,我想发送一个字符串,然后另一个活动应该检索我发送的字符串。

我知道用经典的方式setString()getString()方法可以做到这一点。但我想知道,无论是否在新屏幕上打开目标活动,都可以完成putExtra()getExtra()

4

2 回答 2

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进行检查

于 2012-06-29T10:01:36.910 回答
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);
  }
}
于 2012-06-29T11:18:20.963 回答