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; }
效果图如下: