代码之家  ›  专栏  ›  技术社区  ›  lemon

SimpleAdapter内的ProgressBar

  •  2
  • lemon  · 技术社区  · 14 年前

    我正在尝试向row.xml视图中添加一个progressbar,但似乎无法使其正常工作,我一直在努力。

    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 回复  |  直到 13 年前
        1
  •  2
  •   CommonsWare    14 年前

    SimpleAdapter 不知道如何处理 ProgressBar . 此外,A 进度条 这本身就是一个非常糟糕的列表行。

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

        2
  •  2
  •   Robert Tupelo-Schneck    13 年前

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