1,ListView
package com.example.fortest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.zyj.util.DBHelper;
import com.zyj.util.UserListAdapter;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class UserList extends ListActivity {
//数据数据
private static final String[] COUNTRIES=new String[]{"中国","俄罗斯","英国","法国"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//方法一,不使用XML,类继承ListActivity
/*//设置一个Adapter
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,
COUNTRIES));*/
//方法二,使用XML布局文件
/*setContentView(R.layout.activity_user_list);
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,
COUNTRIES));*/
//方法三,自定义要展示的元素
ArrayList<HashMap<String, Object>> data = getData();
//模仿SimpleAdapter实现的自己的adapter
setListAdapter(new UserListAdapter(this, data));
}
//listItem单击事件
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Toast.makeText(this, "您单击了",Toast.LENGTH_LONG).show();
}
//得到用户数据
private ArrayList<HashMap<String,Object>> getData()
{
ArrayList<HashMap<String,Object>> list = new ArrayList<HashMap<String,Object>>();
DBHelper dbHelper = new DBHelper(this);
Cursor c = dbHelper.query();
if (c.moveToFirst() && c.getCount()>0) {
for(int i = 0;i<c.getCount();i++)
{
HashMap<String,Object> m = new HashMap<String,Object>();
m.put("_id", c.getString(0));
m.put("name", c.getString(1));
m.put("pwd", c.getString(2));
list.add(m);
}
}
return list;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.user_list, menu);
return true;
}
//元素的缓冲类,用于优化ListView
private static class ItemViewCache{
public TextView idTextView;
public TextView nameTextView;
public TextView pwdTextView;
}
/**
* 自定义用户列表listview
* @author zyj *
*/
public class UserListAdapter extends BaseAdapter {
private ArrayList<HashMap<String, Object>> data;
private Context context;
private LayoutInflater inflater;
public UserListAdapter(Context c,ArrayList<HashMap<String, Object>> d)
{
this.context = c;
this.data = d;
inflater = LayoutInflater.from(context);
}
//元素的个数
@Override
public int getCount() {
return data.size();
}
//获取某一个位置的数据
@Override
public Object getItem(int position) {
return data.get(position);
}
//获取唯一标识
@Override
public long getItemId(int position) {
return position;
}
//生成在ListView中展示的一个个元素View
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ItemViewCache cache = null;
//优化ListView
if(convertView == null)
{
convertView =inflater.inflate(R.layout.activity_user_list, null);
cache = new ItemViewCache();
cache.idTextView = (TextView) convertView.findViewById(R.id.id);
cache.nameTextView = (TextView) convertView.findViewById(R.id.name);
cache.pwdTextView = (TextView) convertView.findViewById(R.id.pwd);
convertView.setTag(cache);
}
else {
cache = (ItemViewCache) convertView.getTag();
}
//设置文本,然后返回这个View,用于ListView的Item展示
cache.idTextView.setText((String)data.get(position).get("_id"));
cache.nameTextView.setText((String)data.get(position).get("name"));
cache.pwdTextView.setText((String)data.get(position).get("pwd"));
return convertView;
}
}
}
2,日期对话框
参考好文:android动态改变对onCreateDialog对话框值 http://www.111cn.net/sj/android/46484.htm