Schritt 0: Definieren Sie eine Aktion:
public static final String ACTION_SHOW_TEXT= "showText";
Schritt 1: Erstellen Sie Ihre Rundfunkempfänger in Ihrem MainActivity:
BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (myText != null) {
myText.setVisibility(View.VISIBLE);
}
}
};
Schritt 2: das Register hinzufügen und deregistrieren Ereignisse in Ihrem 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);
}
Schritt 3: Wenn Sie Ihre TextView anzeigen möchten, rufen Sie von anyw hier:
Intent i = new Intent(MainActivity.ACTION_SHOW_TEXT);
i.putExtra("success", true);
LocalBroadcastManager.getInstance(this)
.sendBroadcast(i);
}
Wenn ich tun: 'LocalBroadcastManager.getInstance (this) .sendBroadcast (i);', ich LocalBroadcastManager kann nicht in Richtung com.simon.engine.com.FILE_WHERE_I_WANT_TO_DISPLAY_TEXTVIEW angewendet werden. Wie löse ich das? Vielen Dank! – Eddev
'LocalBroadcastManager.getInstance (this)' nimmt einen Kontext als Parameter. Daher, wenn Sie in einem fragment sind, rufen Sie 'LocalBroadcastManager.getInstance (getContext())' – NSimon
Toller Job, Nicolas! Ich habe dir das Maximum von 25 Rufpunkten gegeben. Geniesse dein Wochenende! – Eddev