Android中ListView常用方式:使用BaseAdapter

ListView最基础用法:



 

给ListView设置一个Adapter

private class MyAdapter extends BaseAdapter

继承Basedapter

重写函数:

public int getCount() ;
public View getView(int position, View convertView, ViewGroup parent);

 getCount()用于返回List中有多少Item

getView()用于指定那个位置的布局如何:

package com.example.listadaptertest;

import java.util.ArrayList;

import com.example.listadaptertest.R.id;
import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity {

	ListView mainListView = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		mainListView = (ListView) findViewById(id.main_list);
		mainListView.setAdapter(new MyAdapter());
	}

	// adapter
	private class MyAdapter extends BaseAdapter {
		ViewHolder holder;
		ArrayList<Item> data;

		public MyAdapter() {
			data = new ArrayList<MainActivity.Item>();
			for (int i = 0; i < 100; i++) {
				Item item = new Item(i);
				data.add(item);
			}
		}

		@Override
		public int getCount() {
			return data.size();
		}

		@Override
		public Object getItem(int arg0) {
			return data.get(arg0);
		}

		@Override
		public long getItemId(int arg0) {
			return arg0;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			if (convertView == null) {
				convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.list_item, null);
				holder = new ViewHolder();
				holder.tvTitle = (TextView) convertView.findViewById(id.textViewTitle);
				convertView.setTag(holder);
			} else {
				holder = (ViewHolder) convertView.getTag();
			}
			holder.tvTitle.setText("" + data.get(position).id);
			return convertView;
		}
	}

	// data item
	private class Item {
		private int id;

		public Item(int id) {
			this.id = id;
		}
	}

	// view item
	private class ViewHolder {
		TextView tvTitle;
	}
}

笔记完.

猜你喜欢

转载自hzy3774.iteye.com/blog/2200232