2010-06-09 2 views
2

Я пытаюсь добавить ProgressBar на мой взгляд row.xml, но я не могу заставить его работать я получаюProgressBar внутри SimpleAdapter

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

SimpleAdapter не знает, как бороться с ProgressBar. Более того, ProgressBar сам по себе будет действительно ужасным списком строк.

Пожалуйста, положите ProgressBar внутри более крупной раскладки (с меткой и т. Д.). Вам также понадобится создать собственный класс адаптера, который будет знать, как привязывать данные к ProgressBar.

+0

Спасибо. Я сделал свой собственный, расширив базовый адаптер. – lemon

2

Вы также можете использовать SimpleAdapter.setViewBinder() и привязать индикатор выполнения в своем SimpleAdapter.ViewBinder. Это позволяет использовать встроенную функцию SimpleAdapter для других полей.

Смежные вопросы