5

LocalBroadcastManager授業での使い方の答えを探していたのですBaseAdapterが、何時間もかけて調べてみたところ、正しい答えが見つかりませんでした。アダプタ内からメソッドを呼び出す必要がありますがFragment、その方法がわかりません。誰かが私にそれをどのようにすべきか説明できますか?応答と助けてくれてありがとう。

4

1 に答える 1

6

LocalBroadcastManagerについてしか答えられません。

  1. SDKにサポートライブラリを追加してから、Androidプロジェクトにサポートライブラリを追加します。
  2. もちろん、Javaクラスなどにサポートライブラリをインポートします。
  3. LocalBroadcastManagerを宣言し、インスタンス化します。また、静的と宣言して、(全体の)アプリ全体で使用することもできます。したがって、アクティビティごとに新しいインスタンスを作成する必要はありません。

    public static LocalBroadcastManager mBroadcaster;
    mBroadcaster = LocalBroadcastManager.getInstance(yourAppContextHere);
    
  4. すべてのアクティビティ、サービスなどで、それぞれのライフサイクルに従ってレシーバーを登録および登録解除します。各レシーバーは異なるフィルターを持つことができます。たとえば、onResume(またはonCreate)およびonPause(またはonDestroy)では::

    IntentFilter mFilter = new IntentFilter(MY_ACTION_1);
    mFilter.addAction(MY_ACTION_2);
    
    mBroadcaster.registerReceiver(localBluetoothReceiver, mFilter);
    mBroadcaster.unregisterReceiver(localBluetoothReceiver);
    

    そして最後に、ブロードキャストを送信し、受信者で受信します。

    Intent sendCmdIntent = new Intent("your.package.name.your.action.name");
    sendCmdIntent.putExtra(key, value);
    mBroadcaster.sendBroadcast(sendCmdIntent);
    
    
    private BroadcastReceiver localBluetoothReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            Do whatever depending on the action and on the extra stuff you put in the intent.
    

これはすべてメモリから引用されています。自由に編集してください。

于 2013-02-14T20:54:56.850 に答える