2016-03-29 16 views
-1

2つのクラスを作成しました。1. MainActivity.java 2. Chat_user.java。 Chat_userクラスは、チャットが行われているすべての連絡先を一覧表示し、最新のチャットメッセージを保持します。メインアクティビティには、他のユーザーからチャットメッセージを取得するために作成されたAsynch Taskがあります。 -メインアクティビティの結果に基づいて別のアクティビティのUIを更新します

MainActivity.javaクラスのAsynchタスクで新しいメッセージを取得する場合 •連絡先がChat_userクラスによって作成されたリストビュー(リサイクルビューで作成)に1つの行項目を追加することはできますか?リストにない? •Chat_userクラスによって作成されたリストビューに連絡先が存在する場合、既存の行項目にテキスト値(前回チェックした後に受け取ったチャットメッセージの数)を追加できますか?

「はい」の場合は、これをどのように達成することができますか?

あなたの助けのためにThnxは事前に......。

+0

使用BroadcastReceiver、onReceive(にリストを更新し、新しいメッセージがあるときにブロードキャストを送信して) – Rahul

+0

は、あなたがこの問題のために、今何をしているかについて語ります。あなたはどんなアプローチですか?あなたのデータベースはありますか?任意のコードまたはより多くの情報をください。 –

+0

こんにちはSagar、 返信用Thnx。チャットメッセージを保持するSQliteデータベースがあり、Chat_userクラスのリストビューとして表示されます。私が立ち往生しているところは、Asynchタスク(メインアクティビティクラス)を介して受信した新しいメッセージに基づいて、このリストをChat_userクラスで更新する方法です。今までは、通知アダプターを使用してリストを更新できるかどうかを知ることができましたが、把握できませんでした。 Thnxは事前にヘルプを提供しています。 – Subhash

答えて

0

なぜ、その特定のメッセージ番号または名前を使用していないのですか。

低レポでコメントできません。

+0

私はそれをユニークにするためのトークンを作成しました。私が直面している問題は、このトークンが整数であり、すべてのリストアイテムが変更されるので、その特定のトークンを持つメインアクティビティクラスからChat_userクラスのリストビューを更新する方法です。 – Subhash

+0

chat_userクラスのlistviewを更新するには、mainActivityからchat_userクラスのコンテンツをブロードキャストできます。新しいテキスト値がcha_userクラスでブロードキャストされ、リストビューを更新できます。 –

0

メッセージ履歴を保存するには、データベースが必要です。 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; 
    } 
} 
+0

データベースは既にあります。 Chat_userクラスはSQLiteデータベースからデータを取得し、リストビューとして表示します。私の質問は、メインのアクティビティクラス – Subhash

+0

で作成されたAsynchタスクによって新しいmsgが受信されるとすぐにこのリストビューを更新することです。 – HendraWD

+0

はいこれはアクティビティです。 – Subhash

関連する問題