Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 在Android中自定義適配器

在Android中自定義適配器

編輯:關於Android編程

啊喂,好久沒更新博客了,唉唉,真是抱歉啊!求原諒!



1、自定義列表項適配器的主要方法是:

①public int getCount()=====>此方法用來控制列表項的個數

②public View getView(int position, View convertView, ViewGroup parent)====>此方法用來控制頁面


2、自定義適配器在實際開發中使用的非常靈活也非常廣泛,因為,此方法一定要掌握。(雖然也有現成的適配器,但是在實際開發中使用不多)


3、在自定義適配器的過程中,需要創建一個BaseAdapter對象,擴展該對象需要重寫如下四個方法:

①getCount():該方法的返回值控制該Adapter將會包含多少個列表項;

②getItem(int position):該方法的返回值決定第position處的列表項的內容;

③getItemId(int position):該方法的返回值決定第position處的列表項的ID;

④getView(int position, View convertView, ViewGroup parent):該方法的返回值決定第position出的列表項組件。


4、具體實現代碼如下:





package com.example.baseadaptert;

import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.app.Activity;
import android.content.Context;

public class BaseAdapterT extends Activity {

	private ListView myList;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        myList = (ListView) findViewById(R.id.myList);
        
        final String names[] = new String[]{"xiaoming", "xiaohua", "xiaomi", "xiaomei"};
        final int images[] = new int[] {R.drawable.libai, R.drawable.nongyu, R.drawable.qingzhao, R.drawable.tiger};
//        final int layoutID = R.layout.item;
        myList.setAdapter(new BaseAdapter() {
			
        	@Override
			public int getCount() {
				return names.length;
			}
        	
        	
			@Override
			public View getView(int position, View convertView, ViewGroup parent) {
				Activity activity = (Activity) BaseAdapterT.this;
//				LinearLayout out = (LinearLayout) activity.getLayoutInflater().inflate(position, null);
				LinearLayout out = (LinearLayout) activity.getLayoutInflater().inflate(R.layout.item, null);
				ImageView iv = (ImageView) out.findViewById(R.id.imageView);
				iv.setImageResource(images[position]);
				TextView tv = (TextView) out.findViewById(R.id.textView);
				tv.setText(names[position]);
				return out;
			}
			
			@Override
			public long getItemId(int position) {
				// TODO Auto-generated method stub
				return 0;
			}
			
			@Override
			public Object getItem(int position) {
				// TODO Auto-generated method stub
				return null;
			}
			
		});
        
        myList.setOnItemClickListener(new OnItemClickListener() {// 設置點擊監聽器
			@Override
			public void onItemClick(AdapterView parent, View view, int position, long id) {
				Toast.makeText(view.getContext(), names[position], 1).show();
			}
		});
    }
}



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved