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