0
別のViewファイルでメソッドが呼び出されると、TextViewを再表示したいと思います。 TextViewはMainActivityにあります。android - MainActivityへのブロードキャストの送信とTextViewの表示
このため、私はViewファイルからMainActivityにブロードキャストを送信する予定ですが、動作しませんでした。
これをどのように達成できますか?
別のViewファイルでメソッドが呼び出されると、TextViewを再表示したいと思います。 TextViewはMainActivityにあります。android - MainActivityへのブロードキャストの送信とTextViewの表示
このため、私は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を表示する場合は、anywから呼び出しますここに:
Intent i = new Intent(MainActivity.ACTION_SHOW_TEXT);
i.putExtra("success", true);
LocalBroadcastManager.getInstance(this)
.sendBroadcast(i);
}
私が行うと: 'LocalBroadcastManager.getInstance(この).sendBroadcast(I);'、私が手LocalBroadcastManagerはcom.simon.engine.com.FILE_WHERE_I_WANT_TO_DISPLAY_TEXTVIEWに向けて適用することはできません。これをどうすれば解決できますか?ありがとう! – Eddev
'LocalBroadcastManager.getInstance(this)'はContextをパラメータとして取ります。したがって、あなたがフレグランスを持っている場合は、 'LocalBroadcastManager.getInstance(getContext()) 'を呼び出してください。 – NSimon
Nicolas!私はあなたに25の評判ポイントを与えました。あなたの週末をお楽しみください! – Eddev