Android ListView内容无限循环显示


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

我这里用到的是BaseAdapter

  1. private class MyAdapter extends BaseAdapter{  
  2.   
  3.         private Context context;  
  4.         private String[] strs = null;  
  5.         LayoutInflater inflater = null;  
  6.         public MyAdapter(Context context){  
  7.             this.context = context;  
  8.             //listview中循环显示的数据   
  9.             strs = new String[]{"0","1","2","3","4","5","6","7","8","9"};  
  10.             inflater = LayoutInflater.from(context);  
  11.         }  
  12.         public MyAdapter(){  
  13.               
  14.         }  
  15.         @Override  
  16.         public int getCount() {  
  17.             // TODO Auto-generated method stub   
  18.             //返回int可以保存的最大值,此值为2147483647   
  19.             return Integer.MAX_VALUE;  
  20.         }  
  21.         @Override  
  22.         public Object getItem(int position) {  
  23.             // TODO Auto-generated method stub   
  24.             return position;  
  25.         }  
  26.         @Override  
  27.         public long getItemId(int position) {  
  28.             // TODO Auto-generated method stub   
  29.             return position;  
  30.         }  
  31.         @Override  
  32.         public View getView(int position, View view, ViewGroup parent) {  
  33.             // TODO Auto-generated method stub   
  34.             ViewHolder holder = null;  
  35.             if(view == null){  
  36.                 holder = new ViewHolder();  
  37.                 view = inflater.inflate(R.layout.textview, null);  
  38.                 holder.text = (TextView) view.findViewById(R.id.text);  
  39.                 view.setTag(holder);  
  40.             }else{  
  41.                 holder = (ViewHolder) view.getTag();  
  42.             }  
  43.             //strs[position%strs.length]实现listview中数据的循环   
  44.             holder.text.setText(strs[position%strs.length]);  
  45.               
  46.             return view;  
  47.         }  
  48.           
  49.     }  
  50.   
  51.     class ViewHolder{  
  52.         public TextView text;  
  53.     }  
在onCreate方法中将adapter赋值给listview
  1. @Override  
  2.     public void onCreate(Bundle savedInstanceState) {  
  3.         super.onCreate(savedInstanceState);  
  4.         setContentView(R.layout.main);  
  5.         listView = (ListView) findViewById(R.id.listview);  
  6.         MyAdapter adapter = new MyAdapter(this);  
  7.         listView.setAdapter(adapter);  
  8.         listView.setSelection(Integer.MAX_VALUE/2+1);  
  9.         //设置listview初始化以后的默认选中项,要不然listview初始化以后只能向上拖动而不能向下拖动。   
  10.     }  
其实,严格来说,此程序并不是无限循环,只不过listview内数据太多,达到20多个亿,所以也可以算作是无限循环。

相关内容