2016-04-16 15 views

Antwort

2

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); 
} 
+0

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

+0

'LocalBroadcastManager.getInstance (this)' nimmt einen Kontext als Parameter. Daher, wenn Sie in einem fragment sind, rufen Sie 'LocalBroadcastManager.getInstance (getContext())' – NSimon

+1

Toller Job, Nicolas! Ich habe dir das Maximum von 25 Rufpunkten gegeben. Geniesse dein Wochenende! – Eddev