SimpleAdapter中的ProgressBar

时间:2010-06-09 04:48:48

标签: java android

我正在尝试将ProgressBar添加到我的row.xml视图中,但我似乎无法让它继续工作

06-09 12:44:44.802: ERROR/AndroidRuntime(1012): java.lang.IllegalStateException: android.widget.ProgressBar is not a  view that can be bounds by this SimpleAdapter

ArrayList arr = new ArrayList();
HashMap map = new HashMap();
map.put("progress", 10);
arr.add(map);

String [] fieldNames = {"progress"};
int [] fieldIds = {R.id.progress};

SimpleAdapter adapter = new SimpleAdapter(this, arr, R.layout.row, fieldNames, fieldIds);
list = (ListView) findViewById(R.id.list);
list.setAdapter(adapter);

<ProgressBar android:id="@+id/progress"
        style="?android:attr/progressBarStyleHorizontal"
        android:max="100"
        android:progress="5"        
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
    />

有没有人知道我缺少什么?

2 个答案:

答案 0 :(得分:2)

SimpleAdapter不知道如何处理ProgressBar。此外,ProgressBar本身将是一个真正可怕的列表行。

请将ProgressBar放在一些较大的行布局(带有标签等)中。您还需要创建自己的适配器类,该类将知道如何将数据绑定到ProgressBar

答案 1 :(得分:2)

您还可以使用SimpleAdapter.setViewBinder()并绑定SimpleAdapter.ViewBinder中的进度条。这允许您将内置的SimpleAdapter功能用于其他字段。