我正在使用Temporary chatRooms
构建一个简单的聊天应用我正在使用单个文本视图来显示带有以下代码的用户名和聊天消息
private void append_chat_conversation(DataSnapshot dataSnapshot) {
Iterator i = dataSnapshot.getChildren().iterator();
while (i.hasNext()){
chat_msg = (String) ((DataSnapshot)i.next()).getValue();
chat_user_name = (String) ((DataSnapshot)i.next()).getValue();
chat_conversation.append(chat_user_name +" : "+chat_msg +" \n");
}
和聊天活动的布局是
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/scrollView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_above="@+id/btn_send"
android:layout_alignRight="@+id/btn_send"
android:layout_alignEnd="@+id/btn_send">
<TextView
android:layout_width="match_parent"
android:padding="15dp"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/textView" />
</ScrollView>
现在我还要显示收到消息的日期和时间。我怎样才能做到这一点。例如,我想在我的应用程序中获得以下时间
我的Firebase云结构
你可以在这里找到整个项目
https://github.com/miskoajkula/Firebase-RealtimeDatabase-App-Example
提前致谢。
答案 0 :(得分:0)
使用FirebaseListAdapter易于使用。喜欢
ListView listOfMessages = (ListView)findViewById(R.id.list_of_messages);
adapter = new FirebaseListAdapter<ChatMessage>(this, ChatMessage.class,
R.layout.message, FirebaseDatabase.getInstance().getReference()) {
@Override
protected void populateView(View v, ChatMessage model, int position) {
// Get references to the views of message.xml
TextView messageText = (TextView)v.findViewById(R.id.message_text);
TextView messageUser = (TextView)v.findViewById(R.id.message_user);
TextView messageTime = (TextView)v.findViewById(R.id.message_time);
// Set their text
messageText.setText(model.getMessageText());
messageUser.setText(model.getMessageUser());
// Format the date before showing it
messageTime.setText(DateFormat.format("dd-MM-yyyy (HH:mm:ss)",
model.getMessageTime()));
}
};
listOfMessages.setAdapter(adapter);
我也实现了这样的聊天。 Reference
如果您使用回收商视图,请使用link