android - 将广播发送到MainActivity,然后显示TextView

时间:2016-04-16 14:54:15

标签: java android view broadcastreceiver main-activity

我希望在另一个View文件中调用方法后取消隐藏TextView。 TextView位于MainActivity中。

为此,我计划将View文件中的广播发送到MainActivity,但它不起作用。

我将如何实现这一目标?

1 个答案:

答案 0 :(得分:5)

第0步:定义一个动作:

public static final String ACTION_SHOW_TEXT= "showText";

步骤1:在MainActivity中创建广播接收器:

BroadcastReceiver  mReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (myText != null) {
                myText.setVisibility(View.VISIBLE);
            }
        }
    };

步骤2:在MainActivity中添加注册和取消注册事件:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
    LocalBroadcastManager.getInstance(this)
            .registerReceiver(mReceiver, new IntentFilter(ACTION_SHOW_TEXT));
}

@Override
protected void onDestroy() {
    super.onDestroy();
    LocalBroadcastManager.getInstance(this).unregisterReceiver(mReceiver);
}

步骤3:每当您想要显示TextView时,都可以从任何地方拨打电话:

Intent i = new Intent(MainActivity.ACTION_SHOW_TEXT);
                        i.putExtra("success", true);
                        LocalBroadcastManager.getInstance(this)
                                .sendBroadcast(i);
}