歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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多個億,所以也可以算作是無限循環。
Copyright © Linux教程網 All Rights Reserved