android界面中显示列表效果的几种方式:
方式一. 继承ListActivity,使用Listadapter关键代码如下:
- private ListAdapter mListAdapter;
- private List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- listItems=getListItems();
- mListAdapter = new ListAdapter(this,listItems);
- setListAdapter(mListAdapter);
- }
- private List<Map<String, Object>> getListItems()
- {
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("mytitle","Oracle" );
- map.put("myimage", R.drawable.a);
- map.put("myimages", R.drawable.rating_5);
- listItems.add(map);
- map = new HashMap<String, Object>();
- map.put("mytitle","Sqlite" );
- map.put("myimage", R.drawable.b);
- map.put("myimages", R.drawable.rating_5);
- listItems.add(map);
- map = new HashMap<String, Object>();
- map.put("mytitle","MySql" );
- map.put("myimage", R.drawable.c);
- map.put("myimages", R.drawable.rating_5);
- listItems.add(map);
- return listItems;
- }
ListAdapter代码:
- package org.anjoy.act;
- import java.util.List;
- import java.util.Map;
- import android.app.AlertDialog;
- import android.content.Context;
- import android.content.DialogInterface;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.ViewGroup;
- import android.widget.BaseAdapter;
- import android.widget.ImageView;
- import android.widget.TextView;
- public class ListAdapter extends BaseAdapter {
- private Context context;//上下文路径
- private LayoutInflater inflater;//视图容器
- private List<Map<String,Object>> listitems;//item信息集合
- public class holderView //自定义控件集合
- {
- private TextView mytitle;
- private ImageView myimage;
- private ImageView myimages;
- }
- //构造DeviceAdapter方法
- public ListAdapter(Context context,List<Map<String,Object>> listitems)
- {
- this.context=context;
- this.inflater=LayoutInflater.from(context);//创建视图容器
- this.listitems=listitems;
- }
- public int getCount() {
- // TODO Auto-generated method stub
- return listitems.size();
- }
- public Object getItem(int arg0) {
- // TODO Auto-generated method stub
- return listitems.get(arg0);
- }
- public long getItemId(int arg0) {
- // TODO Auto-generated method stub
- return arg0;
- }
- public View getView(int position, View convertView, ViewGroup parent) {
- // 自定义视图
- holderView mView =null;
- if(convertView==null)
- {
- mView=new holderView();
- //获取listitem布局文件
- convertView=inflater.inflate(R.layout.main, null);
- //获取控件对象
- mView.mytitle=(TextView)convertView.findViewById(R.id.mytitle);
- mView.myimage =(ImageView)convertView.findViewById(R.id.myimage);
- mView.myimages =(ImageView)convertView.findViewById(R.id.myimageview);
- //设置控件对象到convertview视图集合中
- convertView.setTag(mView);
- }
- else
- {
- mView =(holderView)convertView.getTag();
- }
- //设置item控件上的值
- mView.mytitle.setText((String) listitems.get(position).get("mytitle"));
- mView.myimage.setBackgroundResource((Integer)listitems.get(position).get("myimage"));
- mView.myimages.setBackgroundResource((Integer)listitems.get(position).get("myimages"));
- mView.myimage.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- // TODO Auto-generated method stub
- new AlertDialog.Builder(context)
- .setIcon(R.drawable.alert)
- .setTitle("温馨提示")
- .setMessage("请您操作看看!")
- .setPositiveButton("确定", null)
- .show();
- }
- });
- return convertView;
- }
- }
效果图:
3.方法二:activity继承Listview,使用SimpleAdapter和布局文件
关键代码:
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- SimpleAdapter adapter = new SimpleAdapter(this,getData(),R.layout.main,
- new String[]{"mytitle","myimageview","myimage"},
- new int[]{R.id.mytitle,R.id.myimageview,R.id.myimage});
- setListAdapter(adapter);
- }
- private List<Map<String, Object>> getData() {
- List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("mytitle", "IOS教材");
- map.put("myimageview", R.drawable.rating_5);
- map.put("myimage", R.drawable.a);
- list.add(map);
- map = new HashMap<String, Object>();
- map.put("mytitle", "Android教材");
- map.put("myimageview",R.drawable.rating_5);
- map.put("myimage", R.drawable.b);
- list.add(map);
- map = new HashMap<String, Object>();
- map.put("mytitle", "java教材");
- map.put("myimageview", R.drawable.rating_5);
- map.put("myimage", R.drawable.c);
- list.add(map);
- return list;
- }
效果图如上
2. 方式三:activity中创建ListView对象,使用ListAdapter
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- SimpleAdapter adapter = new SimpleAdapter(this,getData(),R.layout.main,
- new String[]{"mytitle","myimageview","myimage"},
- new int[]{R.id.mytitle,R.id.myimageview,R.id.myimage});
- setListAdapter(adapter);
- }
- private List<Map<String, Object>> getData() {
- List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("mytitle", "IOS教材");
- map.put("myimageview", R.drawable.rating_5);
- map.put("myimage", R.drawable.a);
- list.add(map);
- map = new HashMap<String, Object>();
- map.put("mytitle", "Android教材");
- map.put("myimageview",R.drawable.rating_5);
- map.put("myimage", R.drawable.b);
- list.add(map);
- map = new HashMap<String, Object>();
- map.put("mytitle", "java教材");
- map.put("myimageview", R.drawable.rating_5);
- map.put("myimage", R.drawable.c);
- list.add(map);
- return list;
- }