天天看點

Listview模闆

  每次寫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