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;
}