0
是否有可能爲(動態)ListView中的不同行設置不同的顏色?彩色列表查看
我知道我可以設置背景顏色,例如在項目點擊事件監聽器,但我不知道是否有一種方法來動態設置顏色,同時添加項目到適配器?
不好嗎?
itemAdapter = new ArrayAdapter<Bundle>(this, android.R.layout.simple_list_item_1, itemArray) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row;
LayoutInflater inflater = (LayoutInflater)getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
if (null == convertView) {
row = inflater.inflate(android.R.layout.simple_list_item_1, null);
} else {
row = convertView;
}
row.setBackgroundColor(getItem(position).getInt("color"));
TextView tv = (TextView) row.findViewById(android.R.id.text1);
tv.setText(getItem(position).getString("text"));
return row;
}
};
只是爲了擴大這一點,因爲在聊天中提到這是爲了區分發送和接收的消息。你也應該爲你的適配器重寫'add()'。讓它可以傳遞一個標誌,然後將該標誌附加到適配器的某種內部'List'中。然後,在你的'getView()'方法中,你可以做一個邏輯檢查if(list.get(pos)== MESSAGESENT)backgroundColor1 else backgroundColor2'。 –
稍微更正:不需要重寫'add()'。您可以使用'getItem(pos)'代替。 –
好的。所以,而不是ArrayAdapter我應該有ArrayAdapter 或ArrayAdapter 來容納額外的數據?附:在我看到你的兩條消息之前,我寫到了@Atlos。但是這不僅僅是讓ArrayAdapter 足夠嗎? –
Uhehesh