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<person> 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显示效果
最后 ,本人也是刚学习的,把自己学到的一点一点都写出来。也希望能互相交流探讨下。不足之处还望指出,谢谢。