title: notifyDataSetChanged doesn't refresh RecyclerView
body: <p>I have a weird problem. I switched to <code>RecyclerView</code> from <code>ListView</code> and I can't refresh or notify of change in my <code>ListView</code>. I tried calling <code>Item.this.notifyDataSetChanged();</code>
  and other methods to refresh <code>View</code> but it doesn't work.
  Instead <code>RecyclerView</code> is refreshed when I scroll(regardless of direction). How can I notify my <code>RecyclerView</code> when there is a change?</p>
  
  <p>CODE:</p>
  
  <pre><code>@Override
  public void onBindViewHolder(Ids holder, final int position) {
      rowItemClass = (ListViewRow) rowItems.get(position);
      Log.e("swag", "OYOYOYOYOYO");
      if (Globals.isPlaying &amp;&amp; Globals.pos == position) {
  
          if (pausedSamePos == true) {
              holder.pauseed_play.setVisibility(View.VISIBLE);
              holder.playing_pause.setVisibility(View.GONE);
          } else {
              holder.pauseed_play.setVisibility(View.GONE);
              holder.playing_pause.setVisibility(View.VISIBLE);
          }
          holder.song_currenttime_sb.setActive();
          holder.song_duration.setVisibility(View.INVISIBLE);
          holder.song_duration_sb.setVisibility(View.VISIBLE);
          holder.seekbar.setActive();
  
      } else {
          holder.seekbar.setInactive();
          holder.song_currenttime_sb.setInactive();
          holder.song_icon.setImageResource(rowItemClass.getImageId());
          holder.song_duration_sb.setVisibility(View.INVISIBLE);
          holder.song_duration.setVisibility(View.VISIBLE);
          holder.pauseed_play.setVisibility(View.GONE);
          holder.playing_pause.setVisibility(View.GONE);
  
      }
      sharedPreference = new SharedPreference();
  
      holder.song_duration.setTypeface(Globals
              .getTypefaceSecondary(context));
      holder.song_duration_sb.setTypeface(Globals
              .getTypefaceSecondary(context));
      holder.song_name.setTypeface(Globals.getTypefacePrimary(context));
      holder.song_currenttime_sb.setTypeface(Globals
              .getTypefaceSecondary(context));
  
      holder.song_name.setText(rowItemClass.getTitle());
      holder.song_duration.setText(rowItemClass.getDesc());
  
      holder.song_duration_sb.setText(rowItemClass.getDesc());
      holder.favorite.setTag(position);
      holder.song_currenttime_sb.setTag(position);
      holder.seekbar.setTag(position);
      holder.clickRegister.setTag(position);
      holder.song_icon.setTag(position);
      holder.song_name.setTag(position);
      holder.song_duration.setTag(position);
      holder.song_duration_sb.setTag(position);
      holder.more_options.setTag(position);
      // int task_id = (Integer) holder.seekbar.getTag();
      final Ids finalHolder = holder;
  
  
  
  
  
      holder.clickRegister.setOnClickListener(new View.OnClickListener() {
  
          @Override
          public void onClick(View v) {
              try {
  
                  if ((Globals.isPlaying.booleanValue())
                          &amp;&amp; (Globals.pos == position)) {
                      pausePlaying();
  
                  } else {
  
                      Globals.stopPlaying();
                      pausedSamePos = false;
                      Globals.pos = position;
                      Globals.isPlaying = true;
                      Item.this.notifyDataSetChanged();
  
                      Globals.mp = MediaPlayer.create(context, Integer
                              .valueOf(Item.this.songPos[position])
                              .intValue());
                      Globals.mp.start();
                      Globals.pos = position;
  
                      Globals.isPlaying = Boolean.valueOf(true);
                      Item.this.notifyDataSetChanged();
  
                      Globals.mp
                              .setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                                  @Override
                                  public void onCompletion(
                                          MediaPlayer mpOnComplete) {
                                      mpOnComplete.release();
  
                                      Globals.isPlaying = false;
                                      pausedSamePos = false;
                                      Globals.isPlaying = Boolean
                                              .valueOf(false);
                                      finalHolder.menu_options
                                              .startAnimation(new ViewExpandAnimation(
                                                      finalHolder.menu_options));
                                      Item.this.notifyDataSetChanged();
                                  }
                              });
  
                  }
              } catch (Exception localException) {
              }
  
          }
      });
  
      holder.clickRegister
              .setOnLongClickListener(new View.OnLongClickListener() {
  
                  @Override
                  public boolean onLongClick(View v) {
                      Globals.stopPlaying();
                      Item.this.notifyDataSetChanged();
                      return true;
                  }
              });
  
  
  
  
  }
  </code></pre>