我创建了一个双人聊天的应用程序
首先,我必须通过Jsonparser从服务器获取所有数据
有一个自定义列表视图,每行包含“商店,画家,日期时间,评论,ID”
如果你的名字不是空的,则意味着你的评论和viseversa
我想把一个泡泡背景用于评论,表明画家或商店
当我有一个带有多个textview的自定义列表视图时,我不知道如何使用getview,因为包含所有信息的资源数据来自服务器并将其存储到hashmap数组中... hashmap没有位置,因为它是getview方法......
.........一些代码.....
// adding HashList to ArrayList
AllCommentsList.add(map);
adapter = new SimpleAdapter(getApplicationContext(),
AllCommentsList, R.layout.list_row_order_comments,
new String[] { TAG_COMMENT_ID, TAG_SHOP, TAG_PAINTER,TAG_COMMENT, TAG_DATETIME },
new int[] { R.id.tvIdComments, R.id.tvShopSender,R.id.tvPainterSender, R.id.tvComment,R.id.tvDateTimeComments });
// updating listview
listViewComment.setAdapter(adapter);
这是我的代码,但我想动态更改Comment textview
的背景如何把这样的代码放到????
if (strPainter.equals("null")) {
tvComment.setBackgroundResource(R.drawable.bubble_green);
}
if (strShop.equals("null")) {
tvComment.setBackgroundResource(R.drawable.bubble_yellow);
}
答案 0 :(得分:1)
请勿使用SimpleAdapter
。创建一个自定义适配器,覆盖getView
并根据当前项目对布局,背景等进行任何操作。
有关简单示例,请参阅Android SDK文件夹中的/samples/android-8/ApiDemos/src/com/example/android/apis/view/List5.java
(根据需要下载相应的示例):
private class MyListAdapter extends BaseAdapter {
...
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv;
if (convertView == null) {
tv = (TextView) LayoutInflater.from(mContext).inflate(
android.R.layout.simple_expandable_list_item_1, parent, false);
} else {
tv = (TextView) convertView;
}
tv.setText(mStrings[position]);
return tv;
}
...
}