数据添加到自定义的ListView滚动列表 [英] Add data to custom ListView scrolling list

查看:153
本文介绍了数据添加到自定义的ListView滚动列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我实现了一个自定义适配器来填充自定义的ListView 一个图片 2 文本字段。现在我要做的就是将新行添加动态地向下滚动列表。何可我实现这个结果?

这是适配器的code

 公共类CustomListAdapter扩展ArrayAdapter<串GT; {    私人最终活动范围内;
    私人最终的String [] ITEMNAME;
    私人最终整数[] imgid;
    私人最终的String []的问题;    公共CustomListAdapter(Activity上下文,字符串[] ITEMNAME,整数[] imgid,的String []的问题){
        超(背景下,R.layout.mylist,ITEMNAME);
        // TODO自动生成构造函数存根        this.context =背景;
        this.itemname = ITEMNAME;
        this.imgid = imgid;
        this.questions =问题;
    }    公共查看getView(INT位置,查看视图的ViewGroup父){
        LayoutInflater吹气= context.getLayoutInflater();
        查看rowView = inflater.inflate(R.layout.mylist,空,真);
        rowView.setPadding(0,10,0,10);        TextView的txtTitle =(TextView中)rowView.findViewById(R.id.nameList);
        txtTitle.setTextColor(Color.BLACK);
        ImageView的ImageView的=(ImageView的)rowView.findViewById(R.id.imgList);
        TextView的extratxt =(TextView中)rowView.findViewById(R.id.question);        txtTitle.setText(ITEMNAME [位置]);
        imageView.setImageDrawable(新RoundImage(BitmapFactory.de codeResource(context.getResources(),imgid [位置])));
        //imageView.setImageResource(imgid[position]);
        extratxt.setText(问题[位置]);
        返回rowView;    };
}

这是片段在该列表所在的code的一部分

  @覆盖
公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,捆绑savedBundle){
     this.adapter =新CustomListAdapter(getActivity(),ITEMNAME,imgid,问题);
            名单=(ListView控件)firstAccessView.findViewById(R.id.list);
            list.setAdapter(适配器);            list.setOnItemClickListener(新AdapterView.OnItemClickListener(){
    //东东
      @覆盖
        公共无效onItemClick(适配器视图<>母公司,观景,
                                INT位置,长的id){
            // TODO自动生成方法存根
            字符串Slecteditem = ITEMNAME [+位置]
            Toast.makeText(getActivity()getApplicationContext(),Slecteditem,Toast.LENGTH_SHORT).show();        }
    });
}


解决方案

覆盖 onScroll()在你的片段有方法 onCreateView(),实施 onScrollListener

更改您的问题字符串ArrayList的数组。你可以做其他的清单。

 私人的ArrayList<串GT;问题;公共CustomListAdapter(Activity上下文,字符串[] ITEMNAME,整数[] imgid,ArrayList的<串GT;的问题){
    超(背景下,R.layout.mylist,ITEMNAME);
    // TODO自动生成构造函数存根    this.context =背景;
    this.itemname = ITEMNAME;
    this.imgid = imgid;
    this.questions =问题;
}公共查看getView(INT位置,查看视图的ViewGroup父){
    LayoutInflater吹气= context.getLayoutInflater();
    查看rowView = inflater.inflate(R.layout.mylist,空,真);
    rowView.setPadding(0,10,0,10);    TextView的txtTitle =(TextView中)rowView.findViewById(R.id.nameList);
    txtTitle.setTextColor(Color.BLACK);
    ImageView的ImageView的=(ImageView的)rowView.findViewById(R.id.imgList);
    TextView的extratxt =(TextView中)rowView.findViewById(R.id.question);    txtTitle.setText(ITEMNAME [位置]);
    imageView.setImageDrawable(新RoundImage(BitmapFactory.de codeResource(context.getResources(),imgid [位置])));
    //imageView.setImageResource(imgid[position]);
    extratxt.setText(questions.get(位置));
    返回rowView;};
}

实施onScroll的

  @覆盖
公共无效onScroll(AbsListView观点,诠释firstVisibleItem,
        INT visibleItemCount,诠释totalItemCount){//这里加载新的数据集。
your_adapter.notifyDataSetChanged();
}

I implemented a custom adapter to fill a custom ListView with one image and 2 TextField. Now what I want to do is to add new rows dynamically scrolling down the list. Ho can I do achieve this results?

This is the code of the adapter

public class CustomListAdapter extends ArrayAdapter<String> {

    private final Activity context;
    private final String[] itemname;
    private final Integer[] imgid;
    private final String[] questions;

    public CustomListAdapter(Activity context, String[] itemname, Integer[] imgid, String[] questions) {
        super(context, R.layout.mylist, itemname);
        // TODO Auto-generated constructor stub

        this.context = context;
        this.itemname = itemname;
        this.imgid = imgid;
        this.questions=questions;
    }

    public View getView(int position, View view, ViewGroup parent) {
        LayoutInflater inflater = context.getLayoutInflater();
        View rowView = inflater.inflate(R.layout.mylist, null, true);
        rowView.setPadding(0,10,0,10);

        TextView txtTitle = (TextView) rowView.findViewById(R.id.nameList);
        txtTitle.setTextColor(Color.BLACK);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.imgList);
        TextView extratxt = (TextView) rowView.findViewById(R.id.question);

        txtTitle.setText(itemname[position]);
        imageView.setImageDrawable(new RoundImage(BitmapFactory.decodeResource(context.getResources(), imgid[position])));
        //imageView.setImageResource(imgid[position]);
        extratxt.setText(questions[position]);
        return rowView;

    };
}

this is part of the code of the fragment in which the list is located

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedBundle) {
     this.adapter=new CustomListAdapter(getActivity(), itemname, imgid, questions);
            list=(ListView)firstAccessView.findViewById(R.id.list);
            list.setAdapter(adapter);

            list.setOnItemClickListener(new AdapterView.OnItemClickListener() {


    //stuff
      @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
            // TODO Auto-generated method stub
            String Slecteditem= itemname[+position];
            Toast.makeText(getActivity().getApplicationContext(), Slecteditem, Toast.LENGTH_SHORT).show();

        }
    });
}

解决方案

override onScroll() method in your fragment which has onCreateView(), implement onScrollListener.

Changing your questions array of string to ArrayList. you can do it for other lists as well.

private ArrayList<String> questions;

public CustomListAdapter(Activity context, String[] itemname, Integer[] imgid, ArrayList<String> questions) {
    super(context, R.layout.mylist, itemname);
    // TODO Auto-generated constructor stub

    this.context = context;
    this.itemname = itemname;
    this.imgid = imgid;
    this.questions=questions;
}

public View getView(int position, View view, ViewGroup parent) {
    LayoutInflater inflater = context.getLayoutInflater();
    View rowView = inflater.inflate(R.layout.mylist, null, true);
    rowView.setPadding(0,10,0,10);

    TextView txtTitle = (TextView) rowView.findViewById(R.id.nameList);
    txtTitle.setTextColor(Color.BLACK);
    ImageView imageView = (ImageView) rowView.findViewById(R.id.imgList);
    TextView extratxt = (TextView) rowView.findViewById(R.id.question);

    txtTitle.setText(itemname[position]);
    imageView.setImageDrawable(new RoundImage(BitmapFactory.decodeResource(context.getResources(), imgid[position])));
    //imageView.setImageResource(imgid[position]);
    extratxt.setText(questions.get(position));
    return rowView;

};
}

implementation of onScroll

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
        int visibleItemCount, int totalItemCount) {

//load your new set of data here.
your_adapter.notifyDataSetChanged();
}

这篇关于数据添加到自定义的ListView滚动列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆