无限循环的ListView

其实并非是无限循环只是看起来是而已。

首先设置adapter继承BaseAdapter。结构如下:

/**
 * 此类描述的是:无限循环的listview
 * 
 * @authorwxj
 * @version: 2014年7月24日 上午10:40:28
 */
public class CarNumberAdapter extends BaseAdapter {
    private Context context;
    private String[] stringArray;
    /**
     * 创建一个新的实例 CarNumberAdapter.
     * 
     * @param mainActivity
     * @param stringArray
     */
    public CarNumberAdapter(Context context, String[] stringArray) {
        this.context = context;
        this.stringArray = stringArray;
    }
    @Override
    public int getCount() {
        //为了实现无限循环的listvew,将长度设置为int型的最大值
        return    Integer.MAX_VALUE;
    }
    @Override
    public Object getItem(int position) {
        return position;
    }
    @Override
    public long getItemId(int position) {
        return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View viewRoot = View.inflate(context, R.layout.texnull);
        TextView textView = (TextView) viewRoot.findViewById(R.id.text);
        textView.setText(stringArray[position%stringArray.length]); //设置每个条目对应数据时使用 position与数据长度取余的值 对应的数据
        return viewRoot;
    }  


在设置adapter后,设置显示的首个条目的position为Interger.MAX_VALUE/2+1, 这样上下都可以滑动



         lv1 = (ListView) numberPopView.findViewById(R.id.iv1);
        lv1.setAdapter(adapter);
       lv1.setSelection(Integer.MAX_VALUE/2+9);  








posted @ 2014-08-01 15:03  linwoain  阅读(410)  评论(0编辑  收藏  举报