[英]android CustomView
解析Web服務響應后,我得到了一個列表。 我已經使用BaseAdapter
創建了一個customview。 我面臨的問題是我無法使用創建的customview 將數據綁定到ListView
。 這是我的自定義視圖:
public class ItemListBaseAdapter extends BaseAdapter {
int layoutResourceId;
private static List<Item> itemDetailsarrayList;
private LayoutInflater l_Inflater;
public ItemListBaseAdapter(Context context, List<Item> results) {
itemDetailsarrayList = results;
l_Inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
if (convertView == null) {
convertView = l_Inflater.inflate(R.layout.row_layout, null);
holder = new ViewHolder();
holder.txtTitle = (TextView) convertView.findViewById(R.id.textView1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.txtTitle.setText(itemDetailsarrayList.get(position).getCity_name());
return convertView;
}
static class ViewHolder {
TextView txtTitle;
}
}
這就是我試圖綁定的方式:
llstCities = Objparsecities.parse();
ItemListBaseAdapter adapter = new ItemListBaseAdapter(this, lstCities);
lstcities = (ListView)findViewById(R.id.listView1);
lstcities.setAdapter(adapter);
用以下代碼替換您的代碼:見魔術...
public class ItemListBaseAdapter extends BaseAdapter {
int layoutResourceId;
private static List<Item> itemDetailsarrayList;
private LayoutInflater l_Inflater;
public ItemListBaseAdapter(Context context, List<Item> results) {
itemDetailsarrayList = results;
l_Inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return itemDetailsarrayList.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
if (convertView == null) {
convertView = l_Inflater.inflate(R.layout.row_layout, null);
holder = new ViewHolder();
holder.txtTitle = (TextView) convertView.findViewById(R.id.textView1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.txtTitle.setText(itemDetailsarrayList.get(position).getCity_name());
return convertView;
}
static class ViewHolder {
TextView txtTitle;
}
}
看看getCount()方法:
@Override
public int getCount() {
// TODO Auto-generated method stub
return itemDetailsarrayList.size();
}
解決方案是返回適配器包含的完整項目的數量。 您應該知道必須實現的任何方法! 不僅讓eclipse生成方法。 他們只是那時的存根。 如果您不知道在方法中要做什么,則開發人員文檔可為您提供絕佳的視角。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.