android - 向 MainActivity 发送广播,然后显示 TextView
Posted
技术标签:
【中文标题】android - 向 MainActivity 发送广播,然后显示 TextView【英文标题】:android - Sending a broadcast to MainActivity and then showing a TextView 【发布时间】:2016-08-08 12:28:45 【问题描述】:一旦在另一个视图文件中调用方法,我想取消隐藏 TextView。 TextView 在 MainActivity 中。
为此,我打算将 View 文件中的广播发送到 MainActivity,但没有成功。
我将如何实现这一目标?
【问题讨论】:
【参考方案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 点声望点。周末愉快!以上是关于android - 向 MainActivity 发送广播,然后显示 TextView的主要内容,如果未能解决你的问题,请参考以下文章
通过(From)AsyncTask 向 MainActivity 发送意图
通过Android应用程序向Apache服务器发送请求,摆脱无限循环