我想将动态图标添加到列表视图。将动态图标应用于列表视图取决于来自服务器的数据,因此数据如下所示
[{"name":"","id":"8","status":"one"}, {"name":"A","id":"9","status":"two" }, {"name":"A","id":"10","status":"three"}]
假设状态为“一”,然后将颜色应用于视图元素为红色,状态为“二”,然后将颜色
应用于视图为蓝色等。所以以下是我的代码结构
XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<View
android:id="@+id/bangDetVwStatusIcon"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginLeft="5dp"
android:background="@color/booked_color" />
<TextView
android:id="@+id/bangDetTitle"
android:layout_width="240dp"
android:layout_height="32dp" />
<ImageView
android:id="@+id/bangDetImgVwNavigationDn"
android:layout_width="wrap_content" />
代码 ListAdapter bunglowAdapter = new ArrayAdapter(getApplicationContext(), R.layout.expandable_list_item, R.id.bangDetTitle, bungLowList){
public View getView(int position, View convertView,
ViewGroup parent) {
View v = super.getView(position, convertView, parent);
statusIcon = (View)v.findViewById(R.id.bangDetVwStatusIcon);
if (getItem(position).equals("booked")) {
statusIcon.setBackgroundColor(getResources().getColor(R.color.blue));
}
if (getItem(position).equals("onhold")) {
statusIcon.setBackgroundColor(getResources().getColor(R.color.green));
}
if (getItem(position).equals("available")) {
statusIcon.setBackgroundColor(getResources().getColor(R.color.red));
}
return v;
}
};
我尝试了很多但没有实现我的目标。任何人都可以有解决方案然后请建议我。
提前致谢