如何访问在BroadcastReceivers中的MainActivity(布局)中声明的Switch按钮
我有一项任务,当飞机模式为ON / OFF时,我必须改变开关按钮的状态。
我有一个主要活动,我宣布Switch Button,我想从BroadcastReceiver Class更改Switch的状态开/关
接收器
public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { boolean isAirplaneModeOn = intent.getBooleanExtra("state", false); if(isAirplaneModeOn){ What Should i do ? } } }
layout_main_activity
尝试使用像这样的事件总线将事件发布到活动。 从活动中,当您收到事件时,您可以更改开关的状态。 这样的事情: – 你的广播课:
public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { boolean isAirplaneModeOn = intent.getBooleanExtra("state", false); if(isAirplaneModeOn){ EventBus.getDefault().post(new SwitchEvent()); } } }
活动class:
public class YourActivity{ //declare your switch @Override public void onCreate() { setContentView(R.layout.layout_main_activity); //initialize your switch } @Override public void onStart() { super.onStart(); EventBus.getDefault().register(this); } @Override public void onStop() { super.onStop(); EventBus.getDefault().unregister(this); } @Subscribe(threadMode = ThreadMode.MAIN) public void onMessageEvent(SwitchEvent event) { //update your switch element } }
活动的课程:
Public class SwitchEvent{ public SwitchEvent(){ //empty } }