Ich entwickle eine Messaging-App in Android. Wenn ich eine Nachricht sende, speichere ich die Nachricht in sqlite db
mit insert()
. Ich speichere es als ein Objekt, das Absender, Empfänger, Nachricht enthält.SQLitedb Implementierung für Android Messaging
Jetzt, wenn mein Fragment in onCreateView()
erstellt wird, stelle ich es unter Verwendung get
wieder her. Das Problem ist, ich weiß nicht, wie das get
für mein Beispiel zu implementieren. Hier ist mein Code.
In meinem Fragment
,
public void sendTextMessage(View v) {
String message = msg_edittext.getEditableText().toString();
ChatMessage chatMessage = new ChatMessage(message,true);
chatMessage.body = message;
Log.d("hi","Inside3");
localstoragehandler.insert("me", "receiver", chatMessage.body.toString());
msg_edittext.setText("");
chatAdapter.add(chatMessage);
chatAdapter.notifyDataSetChanged();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
localstoragehandler = new LocalStorageHandler(getActivity());
dbCursor = localstoragehandler.get("receiver", "me");
Log.d("hi","Store0");
if (dbCursor.getCount() > 0){
Log.d("hi","Store1");
int noOfScorer = 0;
dbCursor.moveToFirst();
while ((!dbCursor.isAfterLast())&&noOfScorer<dbCursor.getCount())
{
Log.d("hi","Store2" + dbCursor.getString(3));
noOfScorer++;
chatAdapter.addmsg(dbCursor.getString(3));
dbCursor.moveToNext();
}
}
localstoragehandler.close();
}
Als mein Fragment schickte ich nur erstellt wird, um die letzte Meldung. Das bedeutet - Zum Beispiel habe ich geschickt -
Hi
How
Are
You
Wenn das Fragment erstellt wird, ich es als -
You
You
You
You
Hier ist meine chatAdapter
Methode -
public void add(ChatMessage object) {
chatMessageList.add(object);
notifyDataSetChanged();
}
public void addmsg(ChatMessage msg) {
Log.d("hi","Store3" + msg);
chatMessageList.add(msg);
Log.d("hi","Store4" + chatMessageList);
notifyDataSetChanged();
chatMessageList.clear();
}