2
我試圖通過PHP將數據從MySQL數據庫綁定到ListView中的Android RatingBar。使用SQLite,我可以使用SimpleCursorAdapter,但是由於PHP返回JSONArray,因此我將數據加載到HashMap中,並且無法弄清楚如何將該數據綁定到RatingBar。我已經嘗試過這樣的代碼:Android將數據綁定到ListView而不使用光標
class MyBinder implements ViewBinder{
@Override
public boolean setViewValue(View view, String data, String textRepresentation) {
if(view.getId() == R.id.ratingBar){
String stringval = data;
float ratingValue = Float.parseFloat(stringval);
RatingBar ratingBar = (RatingBar) view;
ratingBar.setRating(ratingValue);
return true;
}
return false;
}
}
ListAdapter simpleadapter = new SimpleAdapter(getApplicationContext(), values, R.layout.review_info, columns, toView);
simpleadapter.setViewBinder(new MyBinder());
listview.setAdapter(simpleadapter);
不幸的是,我得到一個編譯時錯誤說setViewBinder不ListAdapter的方法,並建議我投它作爲一個SimpleCursorAdapter。那麼如何在沒有遊標的情況下綁定數據呢?或者我如何從MySQL獲取遊標?由於
最終工作代碼:
public class MyArrayAdapter extends ArrayAdapter<Locations>{
Context context;
ArrayList<Locations> data;
int resource;
public MyArrayAdapter(Context context, int resource, ArrayList<Locations> data
) {
super(context, resource, data);
this.context = context;
this.data = data;
this.resource = resource;
}
static class ViewHolder {
public TextView text;
public RatingBar ratingbar;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = convertView;
ViewHolder viewHolder;
Locations l = data.get(position);
if (rowView == null)
{
viewHolder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//get review_info which is the info inside list_review
rowView = inflater.inflate(R.layout.review_info, null);
viewHolder.text = (TextView) rowView.findViewById(R.id.displayReview);
viewHolder. ratingbar = (RatingBar) rowView.findViewById(R.id.ratingReview);
rowView.setTag(viewHolder);
}
else
{
viewHolder = (ViewHolder) rowView.getTag();
}
viewHolder.text.setText(l.getReview());
viewHolder.ratingbar.setRating(l.getClean());
return rowView;
}
}
感謝我無法解決getView問題()。現在我收到一個新的錯誤,不知道爲什麼。我有一切發佈在UPDATE下。謝謝 – KarlCobb
'R.layout.review_info'中有什麼? –
嘿似乎現在工作。我觀看了這段視頻:http://www.youtube.com/watch?v=wDBM6wVEO70&feature=youtu.be – KarlCobb