我正在Android中开发一个消息传递应用程序。当我发送消息时,我将消息存储在sqlite db
insert()
中。我将它存储为包含发送者,接收者,消息的对象。
现在,当我在onCreateView()
创建片段时,我会使用get
恢复它。问题是我不知道如何为我的例子实现这个get
。这是我的代码。
在我的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();
}
创建片段后,我只收到最后一条消息。这意味着 - 例如我发送了 -
Hi
How
Are
You
创建片段后,我将其作为 -
You
You
You
You
这是我的chatAdapter
方法 -
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();
}
答案 0 :(得分:0)
您是否尝试过调用ChatMessage chatMessage = new ChatMessage(message,true);
外地的功能?
在我之前帮助我的过程中,创建新实例会有所帮助!
ChatMessage chatmessage;
public void sendTextMessage(View v) {
chatmessage = new Chatmessage(....)
//.....
}
答案 1 :(得分:0)
一个简单但草率的修复方法是删除while循环,只看到第一个结果,看你如何多次检索正确的结果。 如果没有看到你的&#34;得到什么,我就无法帮助你。 mthod实际上在做。