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()(将它们包装在 try-catch 块中,因为某些版本的 Android 可能在注册或注销时崩溃)。此接收器应该是控制您的片段的活动类的嵌套类。不要把它放在片段类本身。

  2. 使其成为顶级类并通过诸如setUpdateListener(YourListener). 在控制选项卡的活动中实现侦听器。

  3. 还有一个Messenger类,你可以传递它来通信内部进程。

编辑:无论是使用更新片段的接收器,都不要在清单中注册它,而是通过代码注册它。无需在没有显示 UI 时触发更新 UI 的接收器。

于 2013-07-05T08:59:36.673 回答