BaseAdapter与SimpleAdapter的使用

来源:互联网 发布:js页面加载完毕执行 编辑:程序博客网 时间:2024/05/01 17:06


public class MainActivity extends Activity
{
 private UserDAO userDAO = null;
 
 @Override
 protected void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  userDAO = new UserDAO(this);
  
  //InitListView();
  InitListViewFormBaseAdapter();
  InitButton();
 }

 private void InitButton()
 {
  Button btn = (Button)findViewById(R.id.button1);
  btn.setOnClickListener(listener);
  
 }
 
 private OnClickListener listener = new OnClickListener()
 {
  @Override
  public void onClick(View view)
  {
   userDAO.addUser(2, "qiu", 32);
  }
 };


 private void InitListViewFormSimpleAdapter()
 {
  List<Map<String, Object>> list = userDAO.getUsersMap();
   
  ListView lv = (ListView)findViewById(R.id.lv);
  SimpleAdapter simpleAdapter = new SimpleAdapter(this, list, R.layout.listitem, new String[]{"_id", "name", "age"}, new int[] {R.id.tv_id, R.id.tv_name, R.id.tv_age});
  
  lv.setAdapter(simpleAdapter);
  lv.setOnItemClickListener(ItemclickListener);
 }
 
 private void InitListViewFormBaseAdapter()
 {
  List<Map<String, Object>> list = userDAO.getUsersMap();
   
  ListView lv = (ListView)findViewById(R.id.lv);
  userAdapter adapter = new userAdapter(this, new int[] {1,2,3,4,5}, new String[] {"111","111","111","111","111"});
  lv.setAdapter(adapter);
  //lv.setOnItemClickListener(ItemclickListener);
 } 
 
 
 private OnItemClickListener ItemclickListener = new OnItemClickListener()
 {
  @Override
  public void onItemClick(AdapterView<?> parent, View view, int position, long id)
  {
   HashMap map = (HashMap) parent.getItemAtPosition(position);
   Toast.makeText(getApplicationContext(), String.valueOf(map.get("name")), Toast.LENGTH_LONG).show();
  }
  
 };
 
 private class userAdapter extends BaseAdapter
 {
  private LayoutInflater mInflater;//得到一个LayoutInfalter对象用来导入布局  
  private List<userinfo> users;
  
  public userAdapter(Context context, int[] ids, String[] names)
  {
   mInflater = LayoutInflater.from(context);
   users = new ArrayList<userinfo>();
   for(int i = 0; i < ids.length; i++)
   {
    userinfo ui = new userinfo(ids[i], names[i]);
    users.add(ui);
   }
  }
  
  
  @Override
  public int getCount()
  {
   return users.size();
  }

  @Override
  public Object getItem(int position)
  {
   return null;
  }

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

  @Override
  public View getView(int position, View convertView, ViewGroup parent)
  {
   ViewHolder holder = null; 
   Log.v("MyListViewBase", "getView " + position + " " + convertView);
   if (null == convertView)
   {
    convertView = mInflater.inflate(R.layout.listitem, null);
    holder = new ViewHolder(); 
    /**得到各个控件的对象*/                     
    holder.tvid = (TextView) convertView.findViewById(R.id.tv_id); 
    holder.tvname = (TextView) convertView.findViewById(R.id.tv_name); 
    convertView.setTag(holder);//绑定ViewHolder对象   
   }
   else
   {
    //取出ViewHolder对
    holder = (ViewHolder)convertView.getTag();
   }
   /**设置TextView显示的内容,即我们存放在动态数组中的数据*/   
   holder.tvid.setText(String.valueOf(users.get(position).get_id())); 
   holder.tvname.setText(users.get(position).getName()); 
   
   return convertView;
  }
  
 }
 
 public final class ViewHolder
 {
  public TextView tvid; 
  public TextView tvname; 
  
 }
 
 private class userinfo
 {
  private int _id;
  private String Name;
  
  public userinfo(int id, String name)
  {
   _id = id;
   Name = name; 
  }  
  
  public int get_id()
  {
   return _id;
  }
  public void set_id(int _id)
  {
   this._id = _id;
  }

  public String getName() {
   return Name;
  }

  public void setName(String name) {
   Name = name;
  }
 }

 
}