title: RecycleView Wont update
body: <p>I'm still new with both Java and android </p>
  
  <p>My problem is that the recycleview only gets updated and adds the new added tag if I closed the app and run it again. How can I get the app to update the recycle view instantly to display the new tags. </p>
  
  <p>java code</p>
  
  <pre><code>package com.deitel.favoritesites;
  
  import android.app.AlertDialog;
  import android.content.Context;
  import android.content.DialogInterface;
  import android.content.Intent;
  import android.content.SharedPreferences;
  import android.net.Uri;
  import android.os.Bundle;
  import android.preference.DialogPreference;
  import android.support.design.widget.FloatingActionButton;
  import android.support.design.widget.TextInputLayout;
  import android.support.design.widget.Snackbar;
  import android.support.v7.app.AppCompatActivity;
  import android.support.v7.widget.LinearLayoutManager;
  import android.support.v7.widget.RecyclerView;
  import android.support.v7.widget.Toolbar;
  import android.text.Editable;
  import android.text.TextWatcher;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.view.View.OnLongClickListener;
  import android.view.inputmethod.InputMethodManager;
  import android.widget.Adapter;
  import android.widget.EditText;
  import android.widget.TextView;
  
  import android.view.Menu;
  import android.view.MenuItem;
  
  import java.util.ArrayList;
  import java.util.Collections;
  import java.util.List;
  
  public class MainActivity extends AppCompatActivity {
  private static final String SITES="Sites";
  
  private EditText urlEditText; //where user enters the URL
  private EditText tagEditText;
  private FloatingActionButton saveFloatingActionButton;
  private SharedPreferences savedSites;
  private List&lt;String&gt; tags;
  private SitesAdapter adapter;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
      setSupportActionBar(toolbar);
  
      urlEditText = ((TextInputLayout) findViewById(
              R.id.URLTextInputLayout)).getEditText();
  
      urlEditText.addTextChangedListener(textWatcher);
      tagEditText=((TextInputLayout)findViewById(R.id.tagTextInputLayout)).getEditText();
      tagEditText.addTextChangedListener(textWatcher);
  
  
      //get the shared prefrences containing the user saved URLs
      savedSites = getSharedPreferences(SITES, MODE_PRIVATE);
  
      //get the shared tags in an ArrayList then sort them
      tags = new ArrayList&lt;&gt;(savedSites.getAll().keySet());
      Collections.sort(tags, String.CASE_INSENSITIVE_ORDER);
  
      //get reference to the recycle to configure it
      RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
  
      //use a linerlayout to display items in  a vertical list
      recyclerView.setLayoutManager(new LinearLayoutManager(this));
  
      //create recyclerView.Adopter to bind tags to the RecyclerView
      adapter = new SitesAdapter(tags, itemClickListener, itemLongClickListener);
      recyclerView.setAdapter(adapter);
  
      recyclerView.addItemDecoration(new ItemDivider(this));
  
      //register listner to save a new or edit search
      saveFloatingActionButton = (FloatingActionButton) findViewById(R.id.fab);
      saveFloatingActionButton.setOnClickListener(saveButtonListener);
      updateSaveFAB();
  }
  private final TextWatcher textWatcher= new TextWatcher() {
      @Override
      public void beforeTextChanged(CharSequence s, int start, int count, int after) {
      }
  
      @Override
      public void onTextChanged(CharSequence s, int start, int before, int count) {
          updateSaveFAB();
      }
  
      @Override
      public void afterTextChanged(Editable s) {
      }
  };
  //show or hide the saveFloatingActionButton
  private void updateSaveFAB() {
      //check if there is input in both EditButton
      if (urlEditText.getText().toString().isEmpty() || tagEditText.getText().toString().isEmpty())
          saveFloatingActionButton.hide();
      else
          saveFloatingActionButton.show();
  }
  //saveButtonListener save a tag query pair into sharedPrefrece
  private final OnClickListener saveButtonListener=new OnClickListener() {
      @Override
      public void onClick(View view) {
          String query = urlEditText.getText().toString();
          String tag = tagEditText.getText().toString();
          if (!query.isEmpty() &amp;&amp; !tag.isEmpty()) {
              //hide the virtual keyboard
              ((InputMethodManager) getSystemService(
                      Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(view.getWindowToken(),0);
              addTaggedSites(tag, query);//add/update the search
              urlEditText.setText("");//Clear queryEditText
              tagEditText.setText("");//clear tagEditText
              urlEditText.requestFocus();
          }
      }
  };
  //add new search to file then refresh all button
  private void addTaggedSites(String tag, String query) {
      //get a sharedprefrence editor to store new tag/query pair
      SharedPreferences.Editor preferencesEditor = savedSites.edit();
      preferencesEditor.putString(tag, query);
      preferencesEditor.apply();
  
      //if tag is new&gt; add and sort tags then display update
      if (!tag.contains(tag)) {
          tags.add(tag);
          Collections.sort(tags, String.CASE_INSENSITIVE_ORDER);
          adapter.notifyDataSetChanged();
      }
  }
  //itemClickListener launches web broswer to display search results
  private final OnClickListener itemClickListener=new OnClickListener() {
      @Override
      public void onClick(View view) {
          //get query string and create a URL represeting the search
          String tag= ((TextView) view).getText().toString();
          String urlString=getString(R.string.search_URL)+Uri.encode(savedSites.getString(tag,""),"UTF-8");
  
          //create an intent to lanuch a web broswer
  
          Intent webIntent= new Intent(Intent.ACTION_VIEW,Uri.parse(urlString));
          startActivity(webIntent);
      }
  };
  //itemLongClickListener displays a dialog allowing the user to share edit or delete a saved search
  private final OnLongClickListener itemLongClickListener= new OnLongClickListener() {
      @Override
      public boolean onLongClick(View view) {
          //get the tag that the user long touched
          final String tag = ((TextView) view).getText().toString();
  
          //creatw a new AlertDialog
          AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
  
          //set the alertDialog title
          builder.setTitle(getString(R.string.share_edit_delete_title, tag));
  
          //set list of items to display and create event handler
          builder.setItems(R.array.dialog_items, new DialogInterface.OnClickListener() {
                      @Override
                      public void onClick(DialogInterface dialog, int which) {
                          switch (which) {
                              case 0://share
                                  shareSites(tag);
                                  break;
                              case 1://edit
                                  tagEditText.setText(tag);
                                  urlEditText.setText(savedSites.getString(tag, ""));
                                  break;
                              case 2: //delete
                                  deleteSites(tag);
                                  break;
                          }
                      }
                  }
          );
          //set the alertDialog negetive button
          builder.setNegativeButton(getString(R.string.cancel), null);
          builder.create().show();//display the alert dialog
          return true;
      }
  };
  //allow user to choose app for sharing URL of a saved search
  private void shareSites(String tag){
      //create the URL representing the search
      String urlString= getString(R.string.search_URL)+Uri.encode(savedSites.getString(tag, ""), "UTF-8");
  
      //create an intent to share urlString
      Intent shareIntent= new Intent();
      shareIntent.setAction(Intent.ACTION_SEND);
      shareIntent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.share_subject));
      shareIntent.putExtra(Intent.EXTRA_TEXT,getString(R.string.share_message,urlString));
      shareIntent.setType("text/plain");
  
      //display app that can share plain text
      startActivity(Intent.createChooser(shareIntent,getString(R.string.share_search)));
  }
  
  //delete search after user confirms
  private void deleteSites(final String tag){
      //create a new AlertDialog and set its message
      AlertDialog.Builder confirmBuilder= new AlertDialog.Builder(this);
      confirmBuilder.setMessage(getString(R.string.confirm_message, tag));
      //cancel button configration
      confirmBuilder.setNegativeButton(getString(R.string.cancel), null);
      //positive DELETE button
      confirmBuilder.setPositiveButton(getString(R.string.delete),new DialogInterface.OnClickListener(){
                  public void onClick(DialogInterface dialog , int id){
                      tags.remove(tag);
  
                      //remove sharedPerefrences.Editor from Sharedprefrences
                      SharedPreferences.Editor preferenceEditor= savedSites.edit();
                      preferenceEditor.remove(tag);
                      preferenceEditor.apply();
  
                      adapter.notifyDataSetChanged();
                  }
              }
      );
      confirmBuilder.create().show();
      }
    }
  </code></pre>
  
  <p>This is my adopter code </p>
  
  <pre><code> package com.deitel.favoritesites;
  
  import android.support.v7.widget.RecyclerView;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.ViewGroup;
  import android.widget.TextView;
  
  import java.util.List;
  
  
  public class SitesAdapter extends RecyclerView.Adapter&lt;SitesAdapter.ViewHolder&gt; {
  private final View.OnClickListener clickListener;
  private final View.OnLongClickListener longClickListener;
  
  private final List&lt;String&gt; tags;
  
  
  public SitesAdapter(List&lt;String&gt; tags, View.OnClickListener clickListener, View.OnLongClickListener longClickListener) {
      this.tags = tags;
      this.clickListener = clickListener;
      this.longClickListener = longClickListener;
  }
  
  public static class ViewHolder extends RecyclerView.ViewHolder {
      public final TextView textView;
  
      public ViewHolder(View itemView, View.OnClickListener clickListener, View.OnLongClickListener longClickListener) {
          super(itemView);
          textView = (TextView) itemView.findViewById(R.id.textView);
  
          itemView.setOnClickListener(clickListener);
          itemView.setOnLongClickListener(longClickListener);
      }
  }
  
  @Override
  public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
      View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false);
      return (new ViewHolder(view, clickListener, longClickListener));
  
  }
  
  @Override
  public void onBindViewHolder(ViewHolder holder, int position) {
      holder.textView.setText(tags.get(position));
  }
  
  @Override
  public int getItemCount() {
      return tags.size();
  }
  }
  </code></pre>