第二周笔记

来源:互联网 发布:淘宝店铺名化妆品 编辑:程序博客网 时间:2024/05/14 06:05

Android ListView使用笔记
ListView的使用简单说明

目录

[TOC]来生成目录:

    • 目录
    • 前言
    • 代码流程
    • 实例

前言

用ListView来展示视图列表,可以方便的控制图像显示;

代码流程

1、获取XML中的ListView控件的ID,View视图显示的地方:

mPhoneBookListView = (ListView) findViewById(R.id.list_view);

2、创建PhoneBookAdapter.class用于解析每一个List视图;

实例

ListViewDemo.class:

package com.jorkyin.myapp.listViewDemo;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import android.widget.Toast;import com.jorkyin.myapp.R;import com.jorkyin.myapp.data.UserInfo;import java.util.ArrayList;import java.util.List;/** * Created by YinJian on 2016/3/2. */public class ListViewDemo extends Activity {    private ListView mPhoneBookListView;    private List<UserInfo> mUserInfo = new ArrayList<>();    private PhoneBookAdapter mPhoneBookAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_listview_demo);        //初始化ListView控件        mPhoneBookListView = (ListView) findViewById(R.id.list_view);        //添加数据        mUserInfo.add(new UserInfo("jorkdn", 17));        mUserInfo.add(new UserInfo("jodyin", 23));        mUserInfo.add(new UserInfo("jordin", 70));        mUserInfo.add(new UserInfo("jordin", 30));        mUserInfo.add(new UserInfo("jordin", 12));        mUserInfo.add(new UserInfo("jordin", 21));        mPhoneBookAdapter = new PhoneBookAdapter(ListViewDemo.this, mUserInfo);        //设置Adapter参数        mPhoneBookListView.setAdapter(mPhoneBookAdapter);        //Item点击事件监听        mPhoneBookListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                if (mUserInfo.get(position) != null) {                    //修改数据                    mUserInfo.get(position).setName("ddfsfsf");                    mUserInfo.get(position).setAge(56);                    //更新页面                    mPhoneBookAdapter.refreshData(mUserInfo);                } else {                    Toast.makeText(ListViewDemo.this, "数据为空", Toast.LENGTH_LONG).show();                }            }        });        //Item长按事件监听        mPhoneBookListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {            @Override            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {                Toast.makeText(ListViewDemo.this, "长按 ", Toast.LENGTH_LONG).show();                return false;            }        });    }}

PhoneBookAdapter.class :

package com.jorkyin.myapp.listViewDemo;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import com.jorkyin.myapp.R;import com.jorkyin.myapp.data.UserInfo;import java.util.ArrayList;import java.util.List;/** * Created by YinJian on 2016/3/2. */public class PhoneBookAdapter extends BaseAdapter {    private Context mContext;    private LayoutInflater mLayoutInflater;    private List<UserInfo> mUserInfo = new ArrayList<>();    public PhoneBookAdapter(Context context, List<UserInfo> userInfos) {        mContext = context;        mLayoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);        mUserInfo = userInfos;    }    @Override    public int getCount() {        //返回多少条数据        return mUserInfo.size();    }    @Override    public Object getItem(int position) {        //返回某条数据的对象        return mUserInfo.get(position);    }    @Override    public long getItemId(int position) {        //返回某条数据的ID        return position;    }    @Override    public int getItemViewType(int position) {        //设置不同的ItemView        return super.getItemViewType(position);    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        ViewHolder viewHolder;        //返回数据视图        if (convertView == null) {            //解析item_phone_book_friend,并赋值给convertViewconvertView = mLayoutInflater.inflate(R.layout.item_phone_book_friend, null);            viewHolder = new ViewHolder();            //在View中获取控件            viewHolder.tv_name = (TextView) convertView.findViewById(R.id.item_phoneBook_tv_name);            viewHolder.tx_age = (TextView) convertView.findViewById(R.id.item_phoneBook_tv_age);            viewHolder.tv_avatar = (TextView) convertView.findViewById(R.id.item_phoneBook_iv_avatar);            //设置控件标记            convertView.setTag(viewHolder);        } else {            //获取控件标记            viewHolder = (ViewHolder) convertView.getTag();        }        //和数据之间进行绑定        viewHolder.tv_name.setText(mUserInfo.get(position).getName());        viewHolder.tx_age.setText(mUserInfo.get(position).getAge() + "岁");        viewHolder.tv_avatar.setText(mUserInfo.get(position).getName().subSequence(0, 1).toString().toUpperCase());        return convertView;    }    class ViewHolder {        TextView tv_name;        TextView tx_age;        TextView tv_avatar;    }    /**     * 刷新数据     **/    public void refreshData(List<UserInfo> userInfo) {        mUserInfo = userInfo;        //跟新列表数据        notifyDataSetChanged();    }}

UserInfo.class :

package com.jorkyin.myapp.data;/** * Created by YinJian on 2016/3/4. */public class UserInfo {    private String mName;    private int mAge;    public UserInfo(String name, int age) {        mName = name;        mAge = age;    }    public int getAge() {        return mAge;    }    public void setAge(int age) {        mAge = age;    }    public String getName() {        return mName;    }    public void setName(String name) {        mName = name;    }}

activity_listview_demo.xml:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/phone_book"        android:textSize="24sp"/>    <ListView        android:id="@+id/list_view"        android:layout_width="match_parent"        android:layout_height="match_parent"></ListView></LinearLayout>

item_phone_book_friend.xml:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    <TextView        android:id="@+id/item_phoneBook_iv_avatar"        android:layout_width="48dp"        android:layout_height="48dp"        android:background="@color/colorAccent"        android:gravity="center"        android:text="J"        android:textSize="35dp" />    <TextView        android:id="@+id/item_phoneBook_tv_name"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_marginTop="8dp"        android:layout_toRightOf="@id/item_phoneBook_iv_avatar"        android:text="jorkyin" />    <TextView        android:id="@+id/item_phoneBook_tv_age"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_below="@+id/item_phoneBook_tv_name"        android:layout_toRightOf="@+id/item_phoneBook_iv_avatar"        android:text="4岁" /></RelativeLayout>
0 0
原创粉丝点击