Ich arbeite an Android Chat-Projekt und ich habe eine ListView, die ich möchte, dass die Messages durch Firebase List Adapter auffüllen. Jetzt, nachdem ich den Code ausgeführt habe, stürzt die App ab.Fehler beim Ablegen zum Schreiben mit FirebaseListadAdpter
Ich versuche mehrere Möglichkeiten, um es ohne Erfolg zu lösen. Ist meine Vorstellung falsch und ich sollte eine andere Methode verwenden? Anyway-
Die Ausnahme ist:
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [simple type, class com.example.giat.myapplication.ChatMessage] from String value; no single-String constructor/factory method
Dies ist der Hauptcode in MainActivity.java ist:
Firebase.setAndroidContext(this);
mFirebaseRef = new Firebase("https://chat-as31da.firebaseio.com");
Button sendBtn = (Button) findViewById(R.id.button);
final EditText MessageTxt = (EditText) findViewById(R.id.edit_message);
sendBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String text =MessageTxt.getText().toString();
ChatMessage message = new ChatMessage("Android User", text);
mFirebaseRef.push().setValue(message);
MessageTxt.setText("");
}
});
final ListView listView = (ListView) this.findViewById(android.R.id.list);
mListAdapter = new FirebaseListAdapter<ChatMessage>(this,ChatMessage.class,android.R.layout.two_line_list_item,mFirebaseRef) {
@Override
protected void populateView(View v, ChatMessage model, int position) {
((TextView)v.findViewById(android.R.id.text1)).setText(model.get_name());
((TextView)v.findViewById(android.R.id.text2)).setText(model.get_messag());
}
};
listView.setAdapter(mListAdapter);
}
Und das ist die POJO:
public class ChatMessage {
private String _name;
private String _message;
public ChatMessage() {}
public ChatMessage(String _name,String _message) {
this._name = _name;
this._message = _message;
}
public String get_name() {
return _name;
}
public String get_message() {
return _message;
}
}
JASON Snippet von Daten:
{
"_message" : "hi there",
"_name" : "sam"
}
Vielen Dank für Ihre Hilfe!
Können Sie ein Schnipsel des JSON (als Text, keine Bilder) bei 'mFirebaseRef' zeigen? –
Ich habe das Snippet von JSON hinzugefügt und bearbeite die Verbindung in MainActivity.java. Vielen Dank für Ihre Hilfe! :) –
Ich denke, die Namen, die mit einem Unterstrich beginnen, können hier Probleme für Jackson verursachen. Probieren Sie diese einfachste mögliche Klasse aus: 'public class ChatMessage {public String _name; öffentliche Zeichenfolge _Nachricht; } '(also ohne Getters/Setter). –