其实并非是无限循环只是看起来是而已。
首先设置adapter继承BaseAdapter。结构如下:
/**
* 此类描述的是:无限循环的listview
*
* @author: wxj
* @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.tex, null);
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);
无限循环的ListView