android ListView内容无限循环显示

其实要达到无限循环显示,主要就是实现继承Adapter的类。

我这里用到的是BaseAdapter

private class MyAdapter extends BaseAdapter{

    	private Context context;
    	private String[] strs = null;
    	LayoutInflater inflater = null;
    	public MyAdapter(Context context){
    		this.context = context;
    		//listview中循环显示的数据
    		strs = new String[]{"0","1","2","3","4","5","6","7","8","9"};
    		inflater = LayoutInflater.from(context);
    	}
    	public MyAdapter(){
    		
    	}
		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			//返回int可以保存的最大值,此值为2147483647
			return Integer.MAX_VALUE;
		}
		@Override
		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return position;
		}
		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return position;
		}
		@Override
		public View getView(int position, View view, ViewGroup parent) {
			// TODO Auto-generated method stub
			ViewHolder holder = null;
			if(view == null){
				holder = new ViewHolder();
				view = inflater.inflate(R.layout.textview, null);
				holder.text = (TextView) view.findViewById(R.id.text);
				view.setTag(holder);
			}else{
				holder = (ViewHolder) view.getTag();
			}
			//strs[position%strs.length]实现listview中数据的循环
			holder.text.setText(strs[position%strs.length]);
			
			return view;
		}
    	
    }

    class ViewHolder{
    	public TextView text;
    }

在onCreate方法中将adapter赋值给listview

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        listView = (ListView) findViewById(R.id.listview);
        MyAdapter adapter = new MyAdapter(this);
        listView.setAdapter(adapter);
        listView.setSelection(Integer.MAX_VALUE/2+1);
        //设置listview初始化以后的默认选中项,要不然listview初始化以后只能向上拖动而不能向下拖动。
    }


其实,严格来说,此程序并不是无限循环,只不过listview内数据太多,达到20多个亿,所以也可以算作是无限循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值