以编程方式更改Listview项目背景

时间:2014-05-04 17:45:48

标签: android android-listview

我想知道如何更改listview项背景颜色。 假设我正在制作聊天应用程序,此聊天应用程序将显示发件人和收件人的消息。我想知道是否可以根据发送者更改每条消息的背景图像。如果消息是从我发送的,那么它将具有不同的背景,如果它已被接收。

3 个答案:

答案 0 :(得分:0)

是的,这是可能的。实施您自己的ListAdapter并相应地实施getView()方法。

答案 1 :(得分:0)

在android中编辑listview的每一行的方法是:

1-将行所需的布局定义为xml布局文件 - 例如,您的行可以包含任意数量的UI小部件,如TextView,EditText,ImageView,....

2-创建一个名为[yourListAdapter]的类 - 这个类通常扩展ListAdapter,Array Adapter,BaseArrayAdapter,....无论你选择扩展什么类,你都应该实现一个getView()方法。在这种方法中,你会夸大你刚刚在步骤1中创建的布局,并设置任意数量的属性,如TypeFace,Background,....

答案 2 :(得分:0)

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    MessageEntity item = (MessageEntity) getItem(position);
    CollectHolder holder = null;
        String sender = item.getSender();
        String userId = Data.getUserData().getMid();
        if (!sender.equals(userId)) {
            convertView = mInflater
                    .inflate(R.layout.adapter_msg_left, null);
        } else {
            convertView = mInflater.inflate(R.layout.adapter_msg_right,
                    null);
        }
    holder = new CollectHolder(convertView);
    convertView.setTag(holder);
    fillData(holder, item, position);
    return convertView;
}

R.layout.adapter_msg_left和R.layout.adapter_msg_right是不同的背景。