title: notifyDataSetChange not working from custom adapter
body: <p>When I repopulate my <code>ListView</code>, I call a specific method from my <code>Adapter</code>.</p>
  
  <p><strong>Problem</strong>:</p>
  
  <p>When I call <code>updateReceiptsList</code> from my <code>Adapter</code>, the data is refreshed, but my <code>ListView</code> doesn't reflect the change. </p>
  
  <p><strong>Question</strong>:</p>
  
  <p>Why doesn't my <code>ListView</code> show the new data when I call <code>notifyDataSetChanged</code>?</p>
  
  <p><strong>Adapter</strong>:</p>
  
  <pre><code>public class ReceiptListAdapter extends BaseAdapter {
  
      public List&lt;Receipt&gt; receiptlist;
      private Context context;
      private LayoutInflater inflater;
      private DateHelpers dateH;
  
      public ReceiptListAdapter(Activity activity, Context mcontext, List&lt;Receipt&gt; rl) {
          context = mcontext;
          receiptlist = rl;
          Collections.reverse(receiptlist);
          inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
          dateH = new DateHelpers();
      }
  
      @Override
      public int getCount() {
          try {
              int size = receiptlist.size();
              return size;
          } catch(NullPointerException ex) {
              return 0;
          }
      }
  
      public void updateReceiptsList(List&lt;Receipt&gt; newlist) {
          receiptlist = newlist;
          this.notifyDataSetChanged();
      }
  
      @Override
      public Receipt getItem(int i) {
          return receiptlist.get(i);
      }
  
      @Override
      public long getItemId(int i) {
          return receiptlist.get(i).getReceiptId() ;
      }
  
      private String getPuntenString(Receipt r) {
          if(r.getPoints().equals("1")) {
              return "1 punt";
          }
          return r.getPoints()+" punten";
      }
  
      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
          View vi=convertView;
  
          final Receipt receipt = receiptlist.get(position);
          ReceiptViewHolder receiptviewholder;
          Typeface tf_hn = Typeface.createFromAsset(context.getAssets(), "helveticaneue.ttf");        
          Typeface tf_hn_bold = Typeface.createFromAsset(context.getAssets(), "helveticaneuebd.ttf");
  
          if (vi == null) { //convertview==null
              receiptviewholder = new ReceiptViewHolder();
              vi = inflater.inflate(R.layout.view_listitem_receipt, null);
              vi.setOnClickListener(null);
              vi.setOnLongClickListener(null);
              vi.setLongClickable(false);
              receiptviewholder.shop = (TextView) vi.findViewById(R.id.tv_listitemreceipt_shop);
              receiptviewholder.date = (TextView) vi.findViewById(R.id.tv_listitemreceipt_date);
              receiptviewholder.price = (TextView) vi.findViewById(R.id.tv_listitemreceipt_price);
              receiptviewholder.points = (TextView) vi.findViewById(R.id.tv_listitemreceipt_points);
              receiptviewholder.shop.setTypeface(tf_hn_bold);
              receiptviewholder.price.setTypeface(tf_hn_bold);
              vi.setTag(receiptviewholder);
          }else{//convertview is not null
              receiptviewholder = (ReceiptViewHolder)vi.getTag();
          }
  
          receiptviewholder.shop.setText(receipt.getShop());
          receiptviewholder.date.setText(dateH.timestampToDateString(Long.parseLong(receipt.getPurchaseDate())));
          receiptviewholder.price.setText("€ "+receipt.getPrice());
          receiptviewholder.points.setText(getPuntenString(receipt));
  
          vi.setClickable(false);
          return vi;
      }
  
      public static class ReceiptViewHolder {
          public TextView shop;
          public TextView date;
          public TextView price;
          public TextView points;
      }
  
      public Object getFilter() {
          // XXX Auto-generated method stub
          return null;
      }
  
  }
  </code></pre>
  
  <p>--EDIT:</p>
  
  <p><strong>found Workaround</strong></p>
  
  <p>Just to have some functional code i do now:</p>
  
  <pre><code>listview.setAdapter( new ReceiptListAdapter(activity,mcontext, -new dataset-);
  </code></pre>
  
  <p>Works, but not how it is supposed to work.</p>