【问题标题】:android - Sending a broadcast to MainActivity and then showing a TextViewandroid - 向 MainActivity 发送广播,然后显示 TextView
【发布时间】:2016-08-08 12:28:45
【问题描述】:

一旦在另一个视图文件中调用方法,我想取消隐藏 TextView。 TextView 在 MainActivity 中。

为此,我打算将 View 文件中的广播发送到 MainActivity,但没有成功。

我将如何实现这一目标?

【问题讨论】:

    标签: java android view broadcastreceiver main-activity


    【解决方案1】:

    步骤 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);
    }
    

    【讨论】:

    • 当我这样做时:LocalBroadcastManager.getInstance(this).sendBroadcast(i);,我得到 LocalBroadcastManager 无法应用于 com.simon.engine.com.FILE_WHERE_I_WANT_TO_DISPLAY_TEXTVIEW。我该如何解决这个问题?谢谢!
    • LocalBroadcastManager.getInstance(this) 将 Context 作为参数。因此,如果您处于零碎状态,请致电LocalBroadcastManager.getInstance(getContext())
    • 干得好,尼古拉斯!我给了你最多 25 点声望点。周末愉快!
    猜你喜欢
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 2022-08-24
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    • 2018-06-07
    相关资源
    最近更新 更多