Вы можете использовать SimpleAdapter.ViewBinder в качестве частного класса в упражнении
class MyBinder implements ViewBinder{
@Override
public boolean setViewValue(View view, Object data, String textRepresentation) {
if(view.getId() == R.id.ratingBar){
String stringval = (String) data;
float ratingValue = Float.parseFloat(stringval);
RatingBar ratingBar = (RatingBar) view;
ratingBar.setRating(ratingValue);
return true;
}
return false;
}
}
Затем вы можете установить ViewBinder на SimpleAdapter следующим образом.
ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.list_simple,
new String[] { "name", "rating"},
new int[] { R.id.item_title, R.id.ratingBar});
adapter.setViewBinder(new MyBinder());
setListAdapter(adapter);
Привязка данных к представлениям происходит в два этапа. Во-первых, если доступно SimpleAdapter.ViewBinder
, вызывается setViewValue(android.view.View, Object, String)
. Если возвращаемое значение равно true, привязка произошла. Если возвращаемое значение равно false, то SimpleAdapter пытается просмотреть представления в следующем порядке.
Для получения дополнительной информации об этом вы можете просмотреть SimpleAdapter
Полагаю, нам не нужно создавать собственный адаптер списка.