java– 在android中聊天应用程序,以便发送者和接收者消息应该在不同的一面

java– 在android中聊天应用程序,以便发送者和接收者消息应该在不同的一面,第1张

概述protectedvoidonPostExecute(ArrayList<HashMap<String,String>>myArrayList)//forarraylist(ArrayList<String>result){for(HashMap<String,String>data:myArrayList){

 protected voID onPostExecute( ArrayList<HashMap<String,String>> myArrayList)//    for arrayList(ArrayList<String> result)   {                                   for (HashMap<String, String> data : myArrayList)      {           String sender_no = data.get(TAG_SENDER_NO);           String msg1=data.get(TAG_SEN_MSG);           String receiver_no=data.get(TAG_RECEIVER_NO);           if(sender_no.equals(senderno))           {           listadapter adapter = new SimpleAdapter(SinglechatActivity.this, myArrayList,R.layout.List_row_layout_even,            new String[] { TAG_SEN_MSG },new int[] { R.ID.message_me });        //  CustomList adapter= new CustomList(SinglechatActivity.this,myArrayList);//sender_no,  msg1,   receiver_no);         ListVIEw  lv = (ListVIEw) findVIEwByID(R.ID.ListvIEw);           lv.setAdapter( adapter);          }           else           {               listadapter adapter = new SimpleAdapter(SinglechatActivity.this, myArrayList,R.layout.List_row_layout_odd,                        new String[] { TAG_SEN_MSG },new int[] { R.ID.message_frnd });                //  CustomList adapter= new CustomList(SinglechatActivity.this,  sender_no,  msg1,   receiver_no);                 ListVIEw  lv = (ListVIEw) findVIEwByID(R.ID.ListvIEw);                   lv.setAdapter( adapter);           }

在这里,我想根据发送者和接收者在右手边和左手边留言.

解决方法:

对发件人和收件人邮件使用具有单独布局的自定义适配器.它被称为异构ListVIEw.

像这样的东西

public class MyAdapter extends BaseAdapter {    ArrayList<HashMap<String,String>> messages;    int SENDER_MESSAGE = 0;    int RECEIVER_MESSAGE = 1;    Context context;    @OverrIDe    public int getCount() {        return messages.size();    }    @OverrIDe    public Object getItem(int position) {        return messages.get(position);    }    @OverrIDe    public long getItemID(int position) {        return position;    }    @OverrIDe    public int getVIEwTypeCount() {        return 2;    }    @OverrIDe    public int getItemVIEwType(int position) {        //This is dummy logic        //Write your own logic to differentiate between sender and receiver message        if (position % 2 == 0) {            return SENDER_MESSAGE;        }        else {            return RECEIVER_MESSAGE;        }    }    @OverrIDe    public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) {        if (convertVIEw == null) {            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);            if (getItemVIEwType(position) == SENDER_MESSAGE) {                convertVIEw = inflater.inflate(R.layout.sender_message_layout, null);            }             else {                //Received message                convertVIEw = inflater.inflate(R.layout.received_message_layout, null);            }        }            //...set text to message layout here    }}

有关自定义适配器的更多信息,您可以参考

http://www.vogella.com/articles/AndroidListView/article.html#adapterown_example

对于异构ListVIEw(ListVIEw中的不同行布局)教程,您可以参考此内容

http://chrislee.kr/wp/tag/getitemviewtype-tutorial/

总结

以上是内存溢出为你收集整理的java – 在android中聊天应用程序,以便发送者和接收者消息应该在不同的一面全部内容,希望文章能够帮你解决java – 在android中聊天应用程序,以便发送者和接收者消息应该在不同的一面所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1119064.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存