android ListView 和 BaseAdapter 应用

步聚:

1.建立ListView对象;--(作用:绑定Adapter呈现数据)

2.建立ListView实现的Item栏位.xml布局;--(作用:实现ListView的栏位布局)

3.建立Item.xml 的View数据实例(类);--(作用:实现Item栏位数据接口)

4.继承BaseAdapter建立MyAdapter类class;--(作用:封装ListView的.xml布局与Item数据)

5.当然还要作更多的操作,这里例出简洁的方法;

adapter实现:

  1     private class UpdateAdpter extends BaseAdapter {

  2 

  3         private LayoutInflater mInflater;

  4         private List<ItemData> mItemsData;

  5 

  6         public UpdateAdpter(Context context, List<ItemData> listItemData) {

  7             this.mInflater = LayoutInflater.from(context);

  8             this.mItemsData = listItemData;

  9 

 10         }

 11 

 12         @Override

 13         public int getCount() {

 14             // TODO Auto-generated method stub

 15             return mItemsData.size();

 16         }

 17 

 18         @Override

 19         public Object getItem(int position) {

 20             // TODO Auto-generated method stub

 21             return mItemsData.get(position);

 22         }

 23 

 24         @Override

 25         public long getItemId(int position) {

 26             // TODO Auto-generated method stub

 27             return position;

 28         }

 29 

 30         @Override

 31         public View getView(final int position, View convertView,

 32                 ViewGroup parent) {

 33             // TODO Auto-generated method stub

 34             ViewHolder holder;

 35             if (convertView == null) {

 36                 convertView = mInflater.inflate(

 37                         R.layout.activity_account_update_listview_item, null);

 38                 holder = new ViewHolder(convertView);

 39                 convertView.setTag(holder);

 40 

 41             } else {

 42                 holder = (ViewHolder) convertView.getTag();

 43             }

 44             ItemData item = mItemsData.get(position);

 45             holder.title.setText(item.getTitle());

 46             holder.price.setText(item.getPrice());

 47             holder.text.setText(item.getBuyText());

 48             holder.status.setText(item.getStatus());

 49 

 50             return convertView;

 51         }

 52 

 53         public class ViewHolder {

 54             public TextView title;

 55             public TextView price;

 56             public TextView buytext;

 57             public TextView status;

 58 

 59             ViewHolder(View view) {

 60                 title = (TextView) view

 61                         .findViewById(R.id.tv_accountupdateitem_title);

 62                 price = (TextView) view

 63                         .findViewById(R.id.tv_accountupdateitem_price);

 64                 text = (TextView) view

 65                         .findViewById(R.id.tv_accountupdateitem_buytext);

 66                 status = (TextView) view.findViewById(R.id.tv_accountupdate_status);

 67             }

 68         }

 69     }

 70 

 71     private class ItemData {

 72         private String title;//标题

 73         private String price;//价格

 74         private String text;//内容

 75         private String status;//状态

 76 

 77         public void setTitle(String value) {

 78             title = value;

 79         }

 80 

 81         public String getTitle() {

 82             return title;

 83         }

 84 

 85         public void setPrice(String value) {

 86             price = value;

 87         }

 88 

 89         public String getPrice() {

 90             return price;

 91         }

 92 

 93         public void setText(String value) {

 94             buytext = value;

 95         }

 96 

 97         public String getText() {

 98             return buytext;

 99         }

100         

101         public void setStatus(String value) {

102             status = value;

103         }

104 

105         public String getStatus() {

106             return status;

107         }        

108     }

activity调有实例:

public class UpdateActivity extends Activity implements OnClickListener{

private ListView UpdateLView;



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_account_update);

        iniView();               

    }



    public void iniView() {

       UpdateLView = (ListView) findViewById(R.id.account_update_listView);

        iniListViewDataUpdate();//初始listview数据

    }



    @Override

    public void onClick(View v) {

        // TODO Auto-generated method stub

    }



    private void iniListViewDataUpdate(){

        ItemData itemData;

        List<ItemData> listItemData = new ArrayList<ItemData>();

        

        for (int i=0;i<2;i++){

            itemData=  new ItemData();

            itemData.setTitle("title");

            itemData.setPrice("price");

            itemData.setText("text");

            itemData.setStatus("status");

            

            listItemData.add(itemData);

        }

        nowUpdateLView.setAdapter(new UpdateAdpter(this,listItemData)); 

    }

item.xml;

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:background="@android:color/white"

    android:descendantFocusability="blocksDescendants"

    android:gravity="center_vertical" >



    <LinearLayout

        android:id="@+id/lyt_roomlistview_item"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:orientation="vertical" >



        <LinearLayout

            android:layout_width="match_parent"

            android:layout_height="40dp"

            android:layout_marginLeft="8dp"

            android:layout_marginRight="8dp"

            android:background="@android:color/white" >



            <TextView

                android:id="@+id/tv_accountupdateitem_title"

                android:layout_width="wrap_content"

                android:layout_height="match_parent"

                android:gravity="center"

                android:text="title"

                android:textSize="18sp" />



            <TextView

                android:id="@+id/tv_accountupdate_status"

                android:layout_width="wrap_content"

                android:layout_height="match_parent"

                android:layout_marginLeft="12dp"

                android:layout_weight="1"

                android:gravity="left|center"

                android:text="button"

                android:textColor="@android:color/holo_orange_dark"

                android:textSize="16sp" />



            <TextView

                android:id="@+id/tv_accountupdateitem_price"

                android:layout_width="wrap_content"

                android:layout_height="match_parent"

                android:gravity="center"

                android:text="price"

                android:textColor="@android:color/holo_orange_dark"

                android:textSize="16sp" />



        </LinearLayout>



        <LinearLayout

            android:layout_width="match_parent"

            android:layout_height="40dp"

            android:layout_marginLeft="8dp"

            android:layout_marginRight="8dp"

            android:background="@android:color/white" >



            <TextView

                android:id="@+id/tv_accountupdateitem_buytext"

                android:layout_width="wrap_content"

                android:layout_height="match_parent"

                android:layout_weight="1"

                android:gravity="center_vertical"

                android:text="Textview"

                android:textSize="16sp" />



            <TextView

                android:id="@+id/textView2"

                android:layout_width="50dp"

                android:layout_height="30dp"

                android:layout_gravity="center"

                android:background="@android:color/holo_orange_dark"

                android:gravity="center"

                android:text="@string/title_buy"

                android:textColor="@android:color/white"

                android:textSize="16sp" />



        </LinearLayout>



    </LinearLayout>



</RelativeLayout>

效果图:

android ListView 和 BaseAdapter 应用

你可能感兴趣的:(android ListView 和 BaseAdapter 应用)