Android 使用动态布局以编程方式向listview添加项

Android 使用动态布局以编程方式向listview添加项,android,layout,Android,Layout,我将开发一个类似聊天信使的应用程序 每次我发送文本时,它都会出现在列表视图的左侧,而回复则会出现在列表视图的右侧 我已经通过使用项目奇偶位置的自定义布局完成了这项工作 因此,当项目位于奇数位置时,它将显示在左侧,偶数将显示在右侧。 通过扩展BaseAdapter public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = getLayoutIn

我将开发一个类似聊天信使的应用程序 每次我发送文本时,它都会出现在列表视图的左侧,而回复则会出现在列表视图的右侧 我已经通过使用项目奇偶位置的自定义布局完成了这项工作 因此,当项目位于奇数位置时,它将显示在左侧,偶数将显示在右侧。 通过扩展BaseAdapter

public View getView(int position, View convertView, ViewGroup parent) { 
        LayoutInflater inflater = getLayoutInflater();<br>
        View row;<br>

        if (position % 2 == 0) {<br>
            row = inflater.inflate(R.layout.list_row_layout_even,parent,false); 
            TextView textLabel = (TextView) row.findViewById(R.id.text);

            textLabel.setText(arraylist.get(position));

        } else {
            row = inflater.inflate(R.layout.list_row_layout_odd, parent,
                    false);
            TextView textLabel = (TextView) row.findViewById(R.id.text);

            textLabel.setText(arraylist.get(position));
        }

        return (row);
    }
但是现在,我想把它放在我想要的一边,我的意思是位置必须与项目的位置独立,因为有时,一个人可以不断发送消息,所以它必须出现在同一边,而不是像旧的布局那样出现在每一边

有可能吗?任何帮助都将不胜感激!
谢谢

您使用的是哪种数据结构?这是可能的。您可以在数据结构中添加一个字段来保存此信息

例如:

from->可以是1或2,这取决于它是谁的消息


在createView方法中,您可以膨胀或显示正确的布局。

是的,这可以通过在从此人接收消息时维护一个变量来实现,如果未从此人接收消息,则将同一变量设置为false

然后只需检查该变量,并根据需要执行任务,而不是奇数和偶数位置