Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中關於Adapter的使用(上)ArrayAdapter

Android中關於Adapter的使用(上)ArrayAdapter

編輯:關於Android編程

在Android應用的開發中,ListView是最常用的一個列表顯示控件,微博,聯系人啊,反正只要涉及多數據展示的情況,都會用到ListView(另外就是GridView)。那麼ListView又是如何來展示數據的呢?這就是Adapter的應用了。

Adapter是將數據展示在ListView(GridView)中的一個接口。通過不同的Adapter,可以很方便地展示數據,也可以實現各種自定義的效果了。

在Android日常的開發中,常用的Adapter有如下三種:

1)ArrayAdapter

2)SimpleAdapter

3)BaseAdapter

下面幾篇文章會介紹一下這幾種Adapter的使用。

Android中關於Adapter的使用(上)ArrayAdapter

Android中關於Adapter的使用(再上)ArrayAdapter

Android中關於ListView的使用(中)SimpleAdapter

Android中關於Adapter的使用(下)BaseAdapter

我們首先下看一下ArrayAdapter。

ArrayAdapter

先來看一下布局,在main.xml中定久了一個listView。

    
    

接下來是在MainActivity中代碼:
	private static final int NUM = 10000;
	
	private List list = new ArrayList();
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		initList();
		
		ListView listView = (ListView)findViewById(R.id.listView1);
		ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, list);
		listView.setAdapter(adapter);
	}
	
	private void initList(){
		for(int i=0;i
1)創建一個ArrayAdapter,它有如下三個參數,其中第二個參數就是每個ListItem要展示的數據,而第三個參數就是源數據的list了。
    /**
     * Constructor
     *
     * @param context The current context.
     * @param resource The resource ID for a layout file containing a TextView to use when
     *                 instantiating views.
     * @param objects The objects to represent in the ListView.
     */
    public ArrayAdapter(Context context, int resource, List objects) {
        init(context, resource, 0, objects);
    }
在這裡,我們傳進去的resource,也就是item的布局,是android本身提供的一個布局,它裡面只包含了一個textview。 效果圖如下: \
雖然定義了10000個item,但是我們拼命往上拉,往下拉,效率其實還是OK的,這是因為手機屏幕能展現的item個數其實是用限的,但item離開屏幕之後,ArrayAdapter會將離開的View給重新利用起來,而不會再去重新創建一個新的view,在ArrayAdapter中getView的代碼如下:
    public View getView(int position, View convertView, ViewGroup parent) {
        return createViewFromResource(position, convertView, parent, mResource);
    }

    private View createViewFromResource(int position, View convertView, ViewGroup parent,
            int resource) {
        View view;
        TextView text;

        if (convertView == null) {
            view = mInflater.inflate(resource, parent, false);
        } else {
            view = convertView;
        }

其實,從這裡我們可以看到在BaseAdapter中如何優化View展示的技巧,就是重復利用View。
大家如果有興趣,可以繼續看下一篇,ArrayAdapter中也可以使用自定義的layout。
Android中關於Adapter的使用(再上)ArrayAdapter
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved