0

I want to unhide a TextView once a method is called in another View file. The TextView is in MainActivity.

For this, I am planning to send a broadcast from the View file to MainActivity, but it didn't work.

How would I achieve this?

Eddev
  • 890
  • 1
  • 10
  • 21

1 Answers1

6

Step 0 : Define an action :

public static final String ACTION_SHOW_TEXT= "showText";

Step 1 : Create your Broadcast receiver in your MainActivity :

BroadcastReceiver  mReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (myText != null) {
                myText.setVisibility(View.VISIBLE);
            }
        }
    };

Step 2 : Add the register and unregister events in your 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);
}

Step 3 : Whenever you want to display your TextView, call from anywhere :

Intent i = new Intent(MainActivity.ACTION_SHOW_TEXT);
                        i.putExtra("success", true);
                        LocalBroadcastManager.getInstance(this)
                                .sendBroadcast(i);
}
NSimon
  • 5,212
  • 2
  • 22
  • 36
  • When I do: `LocalBroadcastManager.getInstance(this).sendBroadcast(i);`, I get LocalBroadcastManager cannot be applied towards com.simon.engine.com.FILE_WHERE_I_WANT_TO_DISPLAY_TEXTVIEW. How do I solve this? Thanks! – Eddev Apr 17 '16 at 18:39
  • `LocalBroadcastManager.getInstance(this)` takes a Context as parameter. Therefore, if you're in a frragment, call `LocalBroadcastManager.getInstance(getContext())` – NSimon Apr 17 '16 at 19:52
  • 1
    Great job, Nicolas! I have given you the maximum of 25 reputation points. Enjoy your weekend! – Eddev Apr 21 '16 at 21:52