关于安卓的ListView 复杂展示

MainActivity.java

package com.example.addresslist_501cgj;

import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import chenguoji.dao.PersonDao;
import chenguoji.dao.bean.person;

public class MainActivity extends Activity implements OnClickListener,
		OnItemClickListener {
	private List list;//设置一个List集合,存储person实体对象
	private ListView lv;//一个Listview控件
	private Button addInfo;
	private PersonDao dao;//PersonDao中写了关于操作数据库的类
	private MyBaseAdapter adapter;
	private Context mcontext;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		init();//初始化
		dao = new PersonDao(this);//调用PersonDao对象
		//queryAll():是查询数据库中所有的person对象,存储到List集合
		list = dao.queryAll();
		//自己创建一个Adapter类
		adapter = new MyBaseAdapter();
		//把Listview控件中添加适配器,用于在List展示不同的布局方式
		lv.setAdapter(adapter);
		//给控件添加点击事件
		addInfo.setOnClickListener(this);
		//刷新界面
		adapter.notifyDataSetChanged();
		//给Listview控件的Item添加点击事件
		lv.setOnItemClickListener(this);
	}

	public void init() {
		lv = (ListView) findViewById(R.id.addIv);
		addInfo = (Button) findViewById(R.id.addInfo);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}

	@Override
	public void onClick(View v) {
		Intent i = new Intent(this, activity02.class);
		startActivity(i);
	}

	//创建适配器。用于在Listview中做展示
	class MyBaseAdapter extends BaseAdapter {
		@Override
		//Listview界面显示的数量
		public int getCount() {
			return list.size();
		}
		
		
		@Override
		public Object getItem(int position) {
			return list.get(position);
		}

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

		//这个是用于的界面展示,复杂界面也在这里修改
		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			View view = View.inflate(MainActivity.this, R.layout.listviewitem,
					null);
			//获取R.layout.listviewitem 中的控件
			TextView itemtv1 = (TextView) view.findViewById(R.id.itemtv1);
			TextView itemtv2 = (TextView) view.findViewById(R.id.itemtv2);
			//获得集合的对应点击位置上的person对象
			final person a = list.get(position);
			//设置信息
			itemtv1.setText(a.getName());
			itemtv2.setText(a.getAddress());
			//返回view
			return view;
		}
	}

	// parent: 代表listview view :点击的条目上的那个Listview position: 条目的位置
	//这个是点击Listview界面上的每一个条目的点击事件
	@Override
	public void onItemClick(AdapterView parent, View view, int position,
			long id) {
		person bean = (person) parent.getItemAtPosition(position);
		long _id = bean.getId();
		String name = bean.getName();
		String address = bean.getAddress();
		String phone = bean.getPhone();
		Intent i = new Intent(this, activity03.class);
		i.putExtra("id", _id);
		i.putExtra("name", name);
		i.putExtra("address", address);
		i.putExtra("phone", phone);
		startActivity(i);
	}
}

我只需要做展示,所以关于数据库的操作就没给贴出代码。

这个是每个条目显示的效果

关于安卓的ListView 复杂展示_第1张图片

这个是Listview显示效果

关于安卓的ListView 复杂展示_第2张图片

最后 ,本人也是刚学习的,把自己学到的一点一点都写出来。也希望能互相交流探讨下。不足之处还望指出,谢谢。

你可能感兴趣的:(安卓)