04.メッセージを受信する処理を作る
サーバーから送信されるメッセージを受信し、画面に表示する処理を作成します。
解説
サーバーから送信されるメッセージを受信するには、以下の書式で、イベントに対するコールバック関数を定義します。
実装
プロジェクトを開く
03.で作成したプロジェクトを開きます。
リストアイテムのレイアウトの作成
メッセージをリスト表示する際のリストアイテムのレイアウトを作成します。
「Project」ペインの「app > res > layout」を右クリックします。
右クリックメニュー「New > Layout resource file」を選択します。
「File name」に「listitem_message」と入力します。
「OK」ボタンを押します。
listitem_message.xmlが作成されます。
ルートレイアウトを「LinearLayout」に変更します。
日時と、ニックネームと、メッセージを表示するためのTextViewを配置します。
listitem_message.xmlの内容を以下のようにします。
チャットクライアントアクティビティのレイアウトの編集
チャットクライアントアクティビティのレイアウトを編集します。
「Project」ペインの「app > res > layout > activity_chat_client.xml」を開きます。
メッセージを入力するためのEditText、入力したメッセージを送信するためのButton、の下に、
メッセージリストを表示するためのListView、
を配置します。
activity_chat_client.xmlの内容を以下のようにします。
Adapterクラスの追加
チャットクライアントアクティビティ を編集します。
「Project」ペインの「app > java > ドメイン.mychatapplication > ChatClientActivity」を開きます。
ListViewに表示するデータのためのクラス「Message」の定義を、チャットクライアントアクティビティクラス内に追加します。
ListViewにデータを表示するには、Apdapterを使用します。クラス「MessageListAdapter」の定義を、チャットクライアントアクティビティクラス内に追加します。
「ChatClientActivity」全体としては、以下のようにします。
ファイルを上書き保存します。
「Cannot resolve symbol」エラーは、「Alt + Enter」で、必要なクラスをimportします。
リビルドし、エラー、警告がないことを確認します。
メッセージを受信したときの処理の追加
メンバー変数宣言に、「メッセージリストアダプタ変数」を追加します。
onCreateメンバ関数の末尾に、「メッセージを受信したときの処理」を追加します。
「ChatClientActivity」全体としては、以下のようにします。
ファイルを上書き保存します。
「Cannot resolve symbol」エラーは、「Alt + Enter」で、必要なクラスをimportします。
リビルドし、エラー、警告がないことを確認します。
実行
Android端末にて、動作確認。
ニックネームを入力し、「GO TO CHAT」ボタンを押し、チャットクライアントアクティビティに遷移します。
自身が入室した旨のメッセージが、表示されます。
自身が送信したメッセージ、他の参加者が送信したメッセージが表示されます。
ダウンロード
サンプルプロジェクト
(github.com上のリポジトリページ)