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