2012-03-23 4 views
1

私はアンドロイドチャットアプリケーションで作業しています。私は、xmppを使って関数を送受信する際に問題に直面しています。私はエミュレータからxmppにメッセージを送り、xmppからメッセージを受け取ることができます。しかし、私はリストビューで着信および発信メッセージを表示する際に問題に直面しています。私はビューのレイアウトを設定する条件を与える方法を混同しています。xmppからの動的なデータを持つリストビュー

if(message from xmpp) { 
    TextView textLabel = (TextView) row.findViewById(R.id.textb); // if message received dislay in left side textview 
    textLabel.setText(receiveddata); //receiveddata contains arraylist of incoming message 
} else (message from me) { 
    TextView textLabel = (TextView) row.findViewById(R.id.texts); // if message sent by me dislay in right side textview 
    textLabel.setText(sentdata); //sentdata contains arraylist of outgoing message 
} 

どうすればいいのですか。

ありがとう

答えて

1

同じフィールドを持つ2つのレイアウトを持つアダプタクラスを作成できます。着信メッセージと発信メッセージの条件を使用します。それに応じて膨張させる。

public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder holder = null; 

     entry = list.get(position); 

     if (convertView == null) { 
      if (getItemViewType(position) == 0) { 
       convertView = inflator.inflate(
         R.layout.messages_even_list_layout, null); 
      } else { 
       convertView = inflator.inflate(
         R.layout.messages_odd_list_layout, null); 
      } 
+0

getItemViewType android docs.Anビューのタイプを表す整数。 getViewで他のビューに変換できる場合、2つのビューは同じタイプを共有する必要があります。注:整数はgetViewTypeCount - 1の範囲内になければなりません。IGNORE_ITEM_VIEW_TYPEも返すことができます。 –

関連する問題