title: getview() is not calling on button click?
body: <p>I am developing a Music Player. All songs are placed in the <code>ListView</code> with a <code>ImageButton</code>. This button is playing and pause the songs. So I am using <code>getview()</code>. But when I am clicking on the <code>ImageButton</code>, the songs are playing and pausing, but the image of play/pause is not changing. My main issue as I think, is that, when I am clicking on the <code>ImageButton</code> it is not calling the <code>getview()</code>. So please help me.  </p>
  
  <pre><code> @Override
  protected void onCreate(Bundle savedInstanceState) {
  setContentView(R.layout.activity_ringtones);
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_ringtones);
      mAdapter = new RingtonesMusicAdapter(this, R.layout.ringtones_row);
      mListView.setAdapter(mAdapter);
   }
  
   public void invalidatePlayButtons(int position) {
      for (int i = 0; i &lt; mTrackData.size(); i++) {
          if (i != position) {
              try {
                  //mTrackData.get(i).getRowItem().mPlayButton.setImageResource(R.drawable.play);
                  if (MusicManager.getInstance().isPlaying(mTrackData.get(i))) {
                      MusicManager.getInstance().stop();
                      mTrackData.get(i).getRowItem().mProgressBar
                              .setProgress(0);
                  }
              } catch (Exception ex) {
                  ex.printStackTrace();
              }
          } else
              mTrackData.get(i).getRowItem().mPlayButton
                      .setImageResource(R.drawable.pause);
      }
  }
  
   public void onPlayClick(View view) {
      Object obj = view.getTag();
  
      if (obj != null &amp;&amp; obj.getClass() == RowItem.class) {
          final RowItem rowItem = (RowItem) obj;
          if(rowItem.mPosition != mChantIndex ){
              if (!MusicManager.getInstance().isPlaying(rowItem)) {
                  invalidatePlayButtons(rowItem.mPosition);
                  MusicManager.getInstance().showProgressAnimation(rowItem.mProgressBar);
              //  rowItem.mPlayButton.setImageResource(R.drawable.pause);
                  if(rowItem.isPause){
                      //rowItem.mPlayButton.setImageResource(R.drawable.pause);
                      MusicManager.getInstance().setLengthTrack();
                  }else{
                      rowItem.mMusicListener = this;
                      MusicManager.getInstance().playDownloadedTrack(rowItem);
                       if(rowItem.mPosition == mProgressbarIndex) {
                              mProgressbarIndex = -1;  
                          }
                          else {
                              mProgressbarIndex = rowItem.mPosition;
                          } 
                  }
              }else if(MusicManager.getInstance().isPlaying(rowItem)){
                  MusicManager.getInstance().pauseTrack(rowItem);
                  MusicManager.getInstance().getLengthTrack();
                  //rowItem.mPlayButton.setImageResource(R.drawable.play);
                  rowItem.isPause = true;
              }
          }
      }else {
          invalidatePlayButtons(-1);
      }
      //mAdapter.notifyDataSetChanged();
  }
  @Override
  public void onRefreshData(Refreshable refreshable, int requestCode) {
      if (requestCode == SoundCloudManager.BITMAP_DATA) {
          mAdapter.notifyDataSetChanged();
      }
  
  
  class RingtonesMusicAdapter extends ArrayAdapter&lt;LinearLayout&gt;{
  
      Context mContext;
      int mResource;
  
      public RingtonesMusicAdapter(Context context, int resource) {
          super(context, resource);
          mContext =context;
          mResource = resource;
      }
  
      @Override
      public int getCount() {
          return mTrackData.size();
      }
  
      public LinearLayout getItem(int position) {
          return null;
          }
  
      public long getItemId(int position) {
          return 0;
      }
  
      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
          LinearLayout row;
          LayoutInflater inflater = ((Activity) mContext).getLayoutInflater();
          row =(LinearLayout)inflater.inflate(mResource, parent, false);
  
          RowItem rowItem = new RowItem(position);
          mTrackData.get(position).setRowItem(rowItem);
          rowItem.mTrack = mTrackData.get(position);
          rowItem.setupRowForRingtone(row);
          return row;
      }
  
      @Override
      public boolean isEnabled(int position) {
          return true;
      }
  }
  </code></pre>
  
  <p>Method <code>rowItem.setupRowForRingtone(row)</code> has the code for changing the play/pause the image. </p>