使用动态布局以编程方式将项添加到listview

时间:2012-04-13 04:09:41

标签: android layout

我要开发一个像聊天信使的应用程序 每次发送文本时,它都会显示在左侧,并且回复将显示在列表视图的右侧 我已经通过使用项目的奇数和偶数位置的自定义布局来完成它 因此,当项目是奇数位置时,它将出现在左侧,偶数将出现在右侧。
通过扩展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);
    }

但是现在,我想把它放在我想要的一边,我的意思是这个位置必须独立于项目的位置,因为有时,一个人可以继续发送消息,所以它必须出现在同一侧而不是每一面都像旧的布局。

有可能吗?任何帮助将非常感谢! 感谢

2 个答案:

答案 0 :(得分:0)

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

代表:

from - &gt;根据信息的不同,可以是1或2。

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

答案 1 :(得分:0)

是的,这可以通过简单地维护一个变量来实现,即从人那里收到消息,并且如果没有从该人那里收到该变量,则将该变量设为false。

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