android之ListView(列表)

来源:互联网 发布:linux运行我的世界效率 编辑:程序博客网 时间:2024/05/27 14:12

android界面中显示列表效果的几种方式:

方式一. 继承ListActivity,使用Listadapter关键代码如下:

private ListAdapter mListAdapter;private List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.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 stubreturn listitems.size();}public Object getItem(int arg0) {// TODO Auto-generated method stubreturn listitems.get(arg0);}public long getItemId(int arg0) {// TODO Auto-generated method stubreturn 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 stubnew 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;    }





效果图如下:

原创粉丝点击