title: Android Using FirebaseUI with FirebaseListOptions to populate a ListView doesn't call populateView
body: <p>I'm using the following dependencies in build.gradle:</p>
  
  <pre><code>compile 'com.google.firebase:firebase-database:11.4.2'
  compile 'com.firebaseui:firebase-ui-database:3.1.0'
  compile 'com.firebaseui:firebase-ui-auth:3.1.0' 
  </code></pre>
  
  <p>My goal is to populate a <code>Listview</code> with data from a Firebase Database.
  I'm following the guide on <a href="https://github.com/firebase/FirebaseUI-Android/blob/master/database/README.md" rel="noreferrer">Github Firebase</a>
  The following method should bind the data to a listview:</p>
  
  <pre><code>private void showMessages() {
  
          Query query = FirebaseDatabase.getInstance()
                  .getReference("notfication/unread/" + userMailAddress.replace(".", ","))
                  .orderByKey();
  
  
          FirebaseListOptions&lt;Message&gt; options = new FirebaseListOptions.Builder&lt;Message&gt;()
                  .setLayout(R.layout.fbmessage_listitem)//Note: The guide doesn't mention this method, without it an exception is thrown that the layout has to be set.
                  .setQuery(query, Message.class)
                  .build();
  
  
          FirebaseListAdapter&lt;Message&gt; adapter = new FirebaseListAdapter&lt;Message&gt;(options) {
              @Override
              protected void populateView(View v, Message model, int position) {
  
                  TextView tvMessage = v.findViewById(R.id.tv_message);
                  tvMessage.setText(model.getDateTimeCreated());
  
              }
          };
  
          ListView readMessageList = findViewById(R.id.lvReadMessageList);
          readMessageList.setAdapter(adapter);
  }
  </code></pre>
  
  <p>This is the layout that contains the TextViews.</p>
  
  <blockquote>
    <p> </p>
  
  <pre><code>&lt;LinearLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_weight="0.6"
      android:orientation="vertical"&gt;
  
      &lt;TextView
          android:id="@+id/tv_created_on"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_gravity="start"
          android:gravity="start"
          android:paddingStart="5dp"
          android:paddingEnd="0dp"
          android:textColor="@android:color/black" /&gt;
  
      &lt;TextView
          android:id="@+id/tv_message"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_gravity="start"
          android:gravity="start"
          android:paddingStart="5dp"
          android:paddingEnd="0dp"
          android:textColor="@android:color/black" /&gt;
  
  &lt;/LinearLayout&gt;
  
  
  &lt;ImageView
      android:id="@+id/iv_message_read"
      android:layout_width="200dp"
      android:layout_height="30dp"
      android:layout_weight="0.2"
      android:contentDescription="@string/message_read"
      android:elevation="2dp"
      app:srcCompat="@drawable/android_ok_sign" /&gt;
  
  &lt;ImageView
      android:id="@+id/iv_delete"
      android:layout_width="200dp"
      android:layout_height="30dp"
      android:layout_weight="0.2"
      android:contentDescription="@string/abc_delete"
      android:elevation="2dp"
      android:src="@drawable/ic_delete_red_48dp" /&gt;
  </code></pre>
    
    <p></p>
  </blockquote>
  
  <p>The model:</p>
  
  <pre><code>public class Message {
  
      private String message;
      private String sender;
      private String receiver;
      private long timestamp;
      private boolean isRead;
      private String userMailAddress;
  
      public Message() {
      }
  
      public Message(String message, String sender, String receiver, long timestamp, boolean isRead) {
          this.message = message;
          this.sender = sender;
          this.receiver = receiver;
          this.timestamp = timestamp;
          this.isRead = isRead;
      }
  
      public String getMessage() {
          return message;
      }
  
      public void setMessage(String message) {
          this.message = message;
      }
  
      public String getSender() {
          return sender;
      }
  
      public void setSender(String sender) {
          this.sender = sender;
      }
  
      public String getReceiver() {
          return receiver;
      }
  
      public void setReceiver(String receiver) {
          this.receiver = receiver;
      }
  
      public long getTimestamp() {
          return timestamp;
      }
  
      public void setTimestamp(long timestamp) {
          this.timestamp = timestamp;
      }
  
      public boolean isRead() {
          return isRead;
      }
  
      public void setRead(boolean read) {
          isRead = read;
      }
  
      public String getUserMailAddress() {
          return userMailAddress;
      }
  
      public void setUserMailAddress(String userMailAddress) {
          this.userMailAddress = userMailAddress;
      }
  
      public String getDateTimeCreated() {
  
          Calendar calendar = Calendar.getInstance(Locale.getDefault());
          calendar.setTimeInMillis(timestamp);
          String date = DateFormat.format("dd-MM-yyyy", calendar).toString();
          String time = DateFormat.format("HH:mm", calendar).toString();
          return date + "\r\n" + time;
      }
  }
  </code></pre>
  
  <p>No matter what i try, set a breakpoint or Log a TAG, the method populateView to bind the data from the model to the textfields isn't called.
  I use the same layouts in the previous FirebaseUI (still in my production app) and everything is working fine there.</p>
  
  <p>Does anyone know why the override method populateView isn't called?</p>