BaseAdapter的基本使用

***BaseAdapter的基本使用

*自定义适配器的步骤:
1.定义子类继承BaseAdapter
2.需要重写自定义适配器中相应的函数
3.创建自定义适配器对象并使用

public class MainActivity extends Activity {
	private ListView lv;
	private List<String> list;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		lv = (ListView) findViewById(R.id.lv);
		list = new ArrayList<String>();
		for (int i = 1; i <= 10; i++) {
			list.add("item"+i);
		}
		
		MyBaseAdapter adapter = new MyBaseAdapter();
		lv.setAdapter(adapter);
		
	}
	/*使用内部类实现BaseAdapter*/
	class MyBaseAdapter extends BaseAdapter{

		@Override
		public int getCount() {      //表示当前适配器中加载的数据的总条目
			return list.size();
		}

		@Override
		public Object getItem(int position) {  //根据指定下标获取对应item的View
			return list.get(position);
		}

		@Override
		public long getItemId(int position) {   //表示根据指定下标获取当前item的id
			return position;
		}
		
		/*
		 * getView()方法表示根据指定下标获取适配器控件中每个item对应的View对象(得到每个用于展示数据的item视图)
		 * int position:表示当前绘制的item的下标
		 * View convertView:表示可复用的view对象
		 * ViewGroup parent:表示当前绘制的item所属的listview控件
		 */
		@Override            
		public View getView(int position, View convertView, ViewGroup parent) {
			//可直接通过构建控件显示 
			/*TextView tv = new TextView(MainActivity.this);
			tv.setTextSize(25);
			tv.setText(list.get(position));
			return tv;*/
			
			//也可通过先创建一个xml文件设置,但需要用到LayoutInflater布局加载器将xml文件转换为View对象
			LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);//获得布局填充器对象
			View view = inflater.inflate(R.layout.item_test, null);//将list_view这个xml文件转换成view对象
			TextView tv = (TextView) view.findViewById(R.id.tv);//获取list_test布局文件中的textview控件
			tv.setText(list.get(position));
			return view;			
		}
		
	}
}
原文地址:https://www.cnblogs.com/SanguineBoy/p/9761282.html