第二周笔记
来源:互联网 发布:淘宝店铺名化妆品 编辑:程序博客网 时间: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,并赋值给convertView; convertView = 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
- 第二周笔记
- 第二周+周五笔记
- 第二周+周三笔记
- Boolan 第二周笔记
- 第二周学习笔记
- Geekband002第二周笔记分享
- 极客班STL第二周笔记
- Boolan IOS第二周笔记
- Python学习笔记[第二周]
- Coursera---Scala课程 第二周笔记
- C++学习笔记第二周(极客班)
- 吴恩达机器学习笔记_第二周
- android 网易云课堂第二周笔记
- 极客班STL第二周学习笔记
- Android学习的第二周笔记
- GeekBandboolanC++ 笔记第二周
- [Boolan] C++第二周学习笔记
- GeekBand C++STL第二周笔记
- uva10400 - Game Show Math(回溯+剪枝)
- PythonChallenge之level-0解题报告
- Visual Studio 2015配置opencv开发环境
- uri和url
- s2sh中hibernate中identity和increment区别
- 第二周笔记
- Unity3d AR 增强现实技术列表(2016年3月31日更新)
- hdu3555+cf55D 数位dp入门题
- 我的第一篇博客以及HDU 1003 Max Sum
- oracle基础数据库语句
- Array
- Linux学习之路——网络基础知识点汇总
- druid配置
- 常用工具的网址