2016-04-16 7 views

答えて

2

ステップ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を表示する場合は、anywから呼び出しますここに:

Intent i = new Intent(MainActivity.ACTION_SHOW_TEXT); 
         i.putExtra("success", true); 
         LocalBroadcastManager.getInstance(this) 
           .sendBroadcast(i); 
} 
+0

私が行うと: 'LocalBroadcastManager.getInstance(この).sendBroadcast(I);'、私が手LocalBroadcastManagerはcom.simon.engine.com.FILE_WHERE_I_WANT_TO_DISPLAY_TEXTVIEWに向けて適用することはできません。これをどうすれば解決できますか?ありがとう! – Eddev

+0

'LocalBroadcastManager.getInstance(this)'はContextをパラメータとして取ります。したがって、あなたがフレグランスを持っている場合は、 'LocalBroadcastManager.getInstance(getContext()) 'を呼び出してください。 – NSimon

+1

Nicolas!私はあなたに25の評判ポイントを与えました。あなたの週末をお楽しみください! – Eddev

関連する問題