0

我为两个人之间的聊天创建了一个应用程序

  • 首先,我必须通过 Jsonparser 从服务器获取所有数据

  • 有一个自定义列表视图,每行包含“shop,painter,datetime,comment,id”

  • 如果你的名字不为空,则表示评论是你的,viseversa

  • 我想放一个气泡背景来表示画家或商店的评论

当我有一个包含多个文本视图的自定义列表视图时,我不知道如何使用 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);
    }
4

1 回答 1

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;
    }
...
}
于 2013-10-29T23:01:53.810 回答