Java Can';t将ArrayList类型的对象转换为我的模型
在尝试使用firebase实现一个简单的聊天应用程序时,我遇到了下面记录的错误。 我注意到的一件事是,前面的消息将被加载,但我尝试滑动到最后一条消息的一个实例,然后应用程序在给出下面的日志时崩溃。 我将真诚地感谢有人帮助我了解这一事件的原因。 谢谢 com.google.firebase.database.DatabaseException:无法转换对象 类型为java.util.ArrayList,类型为chat.ChatMessage 位于com.google.android.gms.internal.zzamy.zze(未知来源) 位于com.google.android.gms.internal.zzamy.zzb(未知来源) 在com.google.android.gms.internal.zzamy.zza(未知来源) 位于com.google.firebase.database.DataSnapshot.getValue(未知源) 在 FirebaseListAdapter.parseSnapshot(FirebaseListAdapter.java:120) 在 FirebaseListAdapter.getItem(FirebaseListAdapter.java:109) 在 com.firebase.ui.database.FirebaseListAdapter.getView(FirebaseListAdapter.java:137) 在android.widget.AbsListView.obtainView(AbsListView.java:2485)中 位于android.widget.ListView.makeAndAddView(ListView.java:1945) 在android.widget.ListView.fillDown(ListView.java:710)中 在android.widget.ListView.fillGap(ListView.java:674) 在android.widget.AbsListView.trackMotionScroll(AbsListView.java:5534)上 在android.widget.AbsListView$FlingRunnable.run(AbsListView.java:5030) 在 Choreographer$CallbackRecord.run(Choreographer.java:800) 位于android.view.Choreographer.doCallbacks(Choreographer.java:603) 在android.view.Choreographer.doFrame(Choreographer.java:571) 在 Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:786) 位于android.os.Handler.handleCallback(Handler.java:815) 位于android.os.Handler.dispatchMessage(Handler.java:104) 位于android.os.Looper.loop(Looper.java:194) 位于android.app.ActivityThread.main(ActivityThread.java:5682) 位于java.lang.reflect.Method.invoke(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:963) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758) 这是我正在使用的聊天信息模型Java Can';t将ArrayList类型的对象转换为我的模型,java,listview,firebase,arraylist,firebase-realtime-database,Java,Listview,Firebase,Arraylist,Firebase Realtime Database,在尝试使用firebase实现一个简单的聊天应用程序时,我遇到了下面记录的错误。 我注意到的一件事是,前面的消息将被加载,但我尝试滑动到最后一条消息的一个实例,然后应用程序在给出下面的日志时崩溃。 我将真诚地感谢有人帮助我了解这一事件的原因。 谢谢 com.google.firebase.database.DatabaseException:无法转换对象 类型为java.util.ArrayList,类型为chat.ChatMessage 位于com.google.android.gms.int
public class ChatMessage {
private String messageText;
private String messageUser;
private long messageTime;
public ChatMessage(String messageText, String messageUser) {
this.messageText = messageText;
this.messageUser = messageUser;
messageTime = new Date().getTime();
}
public ChatMessage(){
}
public String getMessageText() {
return messageText;
}
public void setMessageText(String messageText) {
this.messageText = messageText;
}
public String getMessageUser() {
return messageUser;
}
public void setMessageUser(String messageUser) {
this.messageUser = messageUser;
}
public long getMessageTime() {
return messageTime;
}
public void setMessageTime(long messageTime) {
this.messageTime = messageTime;
}
}
我的显示聊天信息是
private void displayChatMessages() throws DatabaseException {
ListView listOfMessages = (ListView)findViewById(R.id.list_of_messages);
try{
adapter = new FirebaseListAdapter<ChatMessage>(this, ChatMessage.class,
R.layout.message_activity, 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());
messageTime.setText(DateFormat.format("dd-MM-yyyy (HH:mm:ss)",
model.getMessageTime()));
}
};
listOfMessages.setAdapter(adapter);
}catch (DatabaseException ex){
ex.printStackTrace();
}}
private void displayChatMessages()引发DatabaseException{
ListView listOfMessages=(ListView)findViewById(R.id.list of_消息);
试一试{
adapter=新的FirebaseListAdapter(此,ChatMessage.class,
R.layout.message_活动,FirebaseDatabase.getInstance().getReference()){
@凌驾
受保护的void populateView(视图v、聊天信息模型、int位置){
//获取对message.xml视图的引用
TextView messageText=(TextView)v.findviewbyd(R.id.message\u text);
TextView messageUser=(TextView)v.findviewbyd(R.id.message\u user);
TextView messageTime=(TextView)v.findViewById(R.id.message\u time);
//设置他们的文本
messageText.setText(model.getMessageText());
messageUser.setText(model.getMessageUser());
messageTime.setText(DateFormat.format(“dd-MM-yyyy(HH:MM:ss)”,
model.getMessageTime());
}
};
setAdapter(适配器);
}捕获(DatabaseException-ex){
例如printStackTrace();
}}
我遵循了本教程,您正在检索元素列表,并希望将其转换为on object,您需要声明一个ArrayList
并将其设置为返回的数据非常感谢您的时间…我将非常感谢我将如何执行它。您需要共享一些代码,以便我们可以为您提供更多帮助。我使用的代码是相同的