我正在尝试使用基本适配器用我的对象中的字段填充我的列表视图(NewsFeedObj)我目前只是想获取描述字段。当我运行我的代码时,我只是得到一个空白的活动?任何人都可以帮助我
public class News_Feed_BaseAdapter extends BaseAdapter {
private Context context;
private List<NewsFeedObj> obj = Collections.emptyList();
public News_Feed_BaseAdapter(Context context, List<NewsFeedObj> obj) {
this.context = context;
this.obj = obj;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return obj.size();
}
@Override
public NewsFeedObj getItem(int position) {
// TODO Auto-generated method stub
return obj.get(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
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.newfeed_layout, parent, false);
}
TextView t = (TextView) convertView.findViewById(R.id.Description);
NewsFeedObj o = getItem(position);
t.setText(o.get_description());
return convertView;
}
}
在主要活动中
ArrayList<NewsFeedObj> NewsObjs = new ArrayList<NewsFeedObj>();
NewsObjs = j.new_feed_Array_List(); // returns an array list of
// NewsFeedObj
ListView l = getListView();
News_Feed_BaseAdapter A = new News_Feed_BaseAdapter(this, NewsObjs);
l.setAdapter(A);
答案 0 :(得分:0)
尝试调用A.notifyDataSetChanged();在l.setAdapter(A)之后;
这使您的适配器知道它拥有引用的数据已更改,并且需要更新其数据显示。当然,NewsObjs必须是一个非空列表。
答案 1 :(得分:0)
这也是你在arrayadapter中遇到的同样的问题..我也经历过......你只需要做的就是换线
convertView = LayoutInflater.from(context).inflate(R.layout.newfeed_layout, parent, false);
作为
convertView = LayoutInflater.from(context).inflate(R.layout.newfeed_layout, null);
用于ArrayAdapter和BaseAdapter。我相信这会有效..
答案 2 :(得分:0)
j.new_feed_Array_List();这是什么意思..你可以详细说明代码。 如果它适用,请尝试此适配器类
static class ViewHolder {
TextView itemTitle;
}
在获取视图中
ViewHolder holder;
holder.t=(textView)....
holder.t.setText(...);