每次寫listview都要翻以前的代碼,好煩。是以記下模闆,友善下次的使用。
xml檔案部分代碼:
<ListView
android:id="@+id/listview"
android:scrollingCache="false"
android:cacheColorHint="#00000000"
android:divider="@null"
android:listSelector="@android:color/transparent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fadingEdge="none"
android:fadeScrollbars="true">
</ListView>
item的xml布局:(listview_style.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="abcd"
/>
</RelativeLayout>
java 代碼:
定義:
private ListView m_Listview;
private MyAdapter m_listAdapter;
private List<Map<String, String>> m_dataList = new ArrayList<Map<String, String>>();
初始化:
m_listAdapter = new MyAdapter(this,m_dataList);
m_Listview = (ListView) findViewById(R.id.listview);
m_Listview.setAdapter(m_listAdapter);
m_listAdapter.notifyDataSetChanged();
自定義擴充卡:
class MyAdapter extends BaseAdapter{
private Context m_context; //運作上下文
private List<Map<String, String>> m_MapItems ;
private LayoutInflater m_listContainer; //視圖容器
public final class ListItemView{ //自定義控件集合
TextView tv;
}
public MyAdapter (Context context ,List<Map<String, String>> MapItems) {
// TODO Auto-generated constructor stub
this.m_context = context;
m_listContainer = LayoutInflater.from(context); //建立視圖容器并設定上下文
this.m_MapItems = MapItems;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return m_MapItems.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return m_MapItems.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ListItemView listItemView = null;
if (convertView == null) {
listItemView = new ListItemView();
//擷取list_item布局檔案的視圖
convertView = (View)m_listContainer.inflate(R.layout.listview_style,null);
listItemView.tv = (TextView) convertView.findViewById(R.id.textview);
convertView.setTag(listItemView);
}else {
listItemView = (ListItemView)convertView.getTag();
}
Map<String, String> map = m_MapItems.get(position);
return convertView;
}
}
轉載于:https://www.cnblogs.com/jlyg/p/7511731.html