使用baseadapter填写listview

时间:2013-11-11 22:15:00

标签: android listview arraylist baseadapter

我正在尝试使用基本适配器用我的对象中的字段填充我的列表视图(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);

3 个答案:

答案 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(...);