1

ベース アダプターを使用して、リスト ビューにオブジェクト (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);
4

3 に答える 3

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 の両方に。きっとこれでうまくいく..

于 2013-11-13T04:53:39.987 に答える