メッセージ履歴を保存するには、データベースが必要です。 MainActivityがAsyncTaskを介して新しいメッセージを受け取る場合は、そのメッセージをデータベースに保存する必要があります。 Chat_userアクティビティが開かれたら、データベースからメッセージをロードするだけです。テキスト値(最後のチェック後に受け取ったチャット・メッセージの数)については、データベースにカウンタを格納するフィールドを作成できます。新しいメッセージが到着すると、カウンタがインクリメントされ、Chat_userアクティビティが開かれると、カウンタは0にリセットされます。Android用のデータベースが必要な場合は、GreenDAOを使用することをおすすめします。
コメント説明からの更新: あなたのMainActivityからChat_userを直接更新するには、作成したChat_userの参照を保持する必要があります。
public class MainActivity extends Activity {
//keep the reference, so you can use it to update directly
private Chat_user chatUserFragment = new Chat_user();
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
//you must create a method to update your message list in your Chat_user, and call the method from your AsyncTask when a new message come
chatUserFragment.updateMessage(aNewMessage);
}
}
アダプタの例:
public class MessageAdapter extends BaseAdapter {
private ArrayList<Message> data;
public MessageAdapter(){
}
public void setData(ArrayList<Message> data){
this.data = data;
}
@Override
public int getCount() {
return 0;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return null;
}
}
使用BroadcastReceiver、onReceive(にリストを更新し、新しいメッセージがあるときにブロードキャストを送信して) – Rahul
は、あなたがこの問題のために、今何をしているかについて語ります。あなたはどんなアプローチですか?あなたのデータベースはありますか?任意のコードまたはより多くの情報をください。 –
こんにちはSagar、 返信用Thnx。チャットメッセージを保持するSQliteデータベースがあり、Chat_userクラスのリストビューとして表示されます。私が立ち往生しているところは、Asynchタスク(メインアクティビティクラス)を介して受信した新しいメッセージに基づいて、このリストをChat_userクラスで更新する方法です。今までは、通知アダプターを使用してリストを更新できるかどうかを知ることができましたが、把握できませんでした。 Thnxは事前にヘルプを提供しています。 – Subhash