android - 向 MainActivity 发送广播,然后显示 TextView
android - Sending a broadcast to MainActivity and then showing a TextView
我想在另一个视图文件中调用方法后取消隐藏 TextView。
TextView 在 MainActivity 中。
为此,我打算从 View 文件向 MainActivity 发送广播,但没有成功。
我该如何实现?
第 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);
}
我想在另一个视图文件中调用方法后取消隐藏 TextView。 TextView 在 MainActivity 中。
为此,我打算从 View 文件向 MainActivity 发送广播,但没有成功。
我该如何实现?
第 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);
}