0

各アクティビティのフラグメントを介して 1 つの画面に並べて表示される 2 つのアクティビティがあります。アクティビティの 1 つでボタンをクリックしたときに文字列を送信すると、送信した文字列を他のアクティビティで取得する必要があります。

setString()古典的な方法と方法でそれを行うことが可能であることを私は知っていgetString()ます。しかし、私は、新しい画面で対象のアクティビティを開くかどうかにかかわらずputExtra()、それを達成できるのでしょうか?getExtra()

4

2 に答える 2

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 に答える
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();
   }
}

必要な場所ならどこでも、 nullチェックactivityOne.intent,activityTwo.intentに続くようにインテントにアクセスできます

于 2012-06-29T10:01:36.910 に答える