1

プログラムで何らかのフラグが設定されたときにインテントを送信し、BroadcastReceiver でこのインテントを受信します。ここからタブフラグメントを更新する方法がわかりません。提案や例はありますか?

フラグが設定されているときにこのログを取得しますが、そこからの方法がわかりません:

public class MyReceiver extends BroadcastReceiver {
   @Override
   public void onReceive(Context context, Intent intent) {
      Toast.makeText(context, "hello :)", Toast.LENGTH_LONG).show();
   }  
}

手伝ってくれてありがとう!

断片:

public class FragmentInfo extends Fragment {

private TextView textView1;
    private TextView textView3;
    private TextView textView5;
    private TextView textView7;
    private TextView textView8;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View myFragmentView = inflater.inflate(R.layout.fragment_info, container, false);

    connectButton = (Button) myFragmentView.findViewById(R.id.button1);
    changeSettingsButton = (Button) myFragmentView.findViewById(R.id.button2);
    erraseFlightsButton = (Button) myFragmentView.findViewById(R.id.button3);

    //TextView for status of connected device..
    textView1 = (TextView)myFragmentView.findViewById(R.id.TextView1);
    //TextView for Device name
    textView3 = (TextView)myFragmentView.findViewById(R.id.TextView3);
    //TextView for Serial number
    textView5 = (TextView)myFragmentView.findViewById(R.id.TextView5);
    //TextView for Software version
    textView7 = (TextView)myFragmentView.findViewById(R.id.TextView7);
    //TextView for Connected Device version
    textView8 = (TextView)myFragmentView.findViewById(R.id.TextView8);  


    return myFragmentView;
}

}
4

1 に答える 1

3
  1. Receiver クラスを、タブを制御するクラスのネストされたクラスにします。このようにして、フラグメントのメソッドを介してデータを更新するメソッドにアクセスできるはずです。onStart()このレシーバーは、それぞれおよび で登録および登録解除する必要がありonPause()ます (Android の一部のバージョンでは、登録または登録解除時にクラッシュする可能性があるため、それらを try-catch ブロックでラップします)。このレシーバーは、フラグメントを制御するアクティビティ クラスのネストされたクラスである必要があります。フラグメント クラス自体に配置しないでください。

  2. 最上位クラスにして、リスナーを のようなメソッドに渡しsetUpdateListener(YourListener)ます。タブを制御するアクティビティにリスナーを実装します。

  3. Messengerイントラプロセスと通信するために渡すことができるクラスもあります。

編集:フラグメントを更新するレシーバーを使用する場合は、マニフェストではなくコードを使用して登録してください。UI が表示されていないときにトリガーされる、UI を更新するレシーバーを用意する必要はありません。

于 2013-07-05T08:59:36.673 に答える