Android BaseAdapter用法
BaseAdapter 适配器
BaseAdapter是一个抽象类,因此要写自已的适配器,段继承此类,并实现以下方法:
@Override
public int getCount() {
return 0;
}
@Override public Object getItem(int position) {
return null;
}
@Override public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return null;
}
Demo:
描述:用ListView,BaseAdapter实现多个用户信息展示,根据用户性不同显示不同的性别图片(如下图)

代码如下:
主界面布局文件:activity_main
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.zy.baseadapter.MainActivity"> <ListView
android:id="@+id/user_list_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView> </RelativeLayout>
//item_user.xml 布局文件 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"> <ImageView
android:scaleType="centerInside"
android:id="@+id/iv_user_img"
android:layout_width="60dp"
android:layout_height="60dp" />
<TextView
android:id="@+id/tv_user_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> <TextView
android:id="@+id/tv_user_age"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> <TextView
android:id="@+id/tv_user_sex"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> </LinearLayout>
图片文件

public class MainActivity extends AppCompatActivity {
List<UserInfo> userInfos = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//用户数据
for (int i = 0;i < 30;i++){
UserInfo userInfo = new UserInfo();
userInfo.userName = "张" + i;
userInfo.userAge = i;
userInfo.userSex = i%2 == 0?"男":"女";
userInfos.add(userInfo);
}
//listView
ListView listView = (ListView) findViewById(R.id.user_list_view);
//实例化一个适配器
UserInfoListAdapter userInfoListAdapter = new UserInfoListAdapter();
listView.setAdapter(userInfoListAdapter);
}
// 点击屏幕跳转到第二个Activity (点击事件)
// @Override
// public boolean onTouchEvent(MotionEvent event) {
// int action = event.getAction();
// if(action == MotionEvent.ACTION_DOWN){
// Intent intent = new Intent(this,MenuActiviy.class);
// startActivity(intent);
// }
// return false;
// }
class UserInfoListAdapter extends BaseAdapter{
@Override
public int getCount() {
return userInfos.size();
}
@Override
public Object getItem(int position) {
return userInfos.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View itemRootView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_user,null);
TextView userNameView = (TextView) itemRootView.findViewById(R.id.tv_user_name);
userNameView.setText(userInfos.get(position).userName);
TextView userAgeView = (TextView) itemRootView.findViewById(R.id.tv_user_age);
userAgeView.setText(userInfos.get(position).userAge + "");
TextView userSexView = (TextView) itemRootView.findViewById(R.id.tv_user_sex);
userSexView.setText(userInfos.get(position).userSex);
ImageView imageView = (ImageView) itemRootView.findViewById(R.id.iv_user_img);
if(userInfos.get(position).userSex.equals("男")){
imageView.setBackgroundResource(R.drawable.man);
}else if(userInfos.get(position).userSex.equals("女")){
imageView.setBackgroundResource(R.drawable.woman);
}
return itemRootView;
}
}
class UserInfo{
private String userName;
private int userAge;
private String userSex;
}
}
Android BaseAdapter用法的更多相关文章
- Android Meun 用法
Android Meun 用法 点击菜单实体键弹出菜单:如下图 main_activity.xml <?xml version="1.0" encoding="ut ...
- Android ViewPager 用法
Android ViewPager 用法 场景:一般第一次打开应用程序时,程序会有一个提示页来给展现应用程序都有哪些功能:或者程序更新时,又更新哪些新特性,都可以使用ViewPager Demo 描述 ...
- Android Intent 用法全面总结
[代码全屏查看]-Android Intent 用法全面总结 // [1].[代码] 调用拨号程序 跳至 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] / ...
- Android GLSurfaceView用法详解(二)
输入如何处理 若是开发一个交互型的应用(如游戏),通常需要子类化 GLSurfaceView,由此可以获取输入事件.下面有个例子: java代码: package eoe.ClearTes ...
- Android ScrollView用法
Android ScrollView用法 今天试着使用了一下Android的滚轮,以下是一个小小的测试,读取测试文件,主要是使用scrollTo函数和getScrollY(),程序点击BUTTON按钮 ...
- Android Service用法知识点的讲解
Android Service 学习Service相关知识点: android service 的基础知识,生命周期,service分类,运行地点(本地服务,远程服务),运行类型(前台服务,后台服务) ...
- Android Fragment用法知识点的讲解
Android Fragment用法的讲解 碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示.Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了 ...
- Android spannableStringBuilder用法整理
Android spannableStringBuilder用法整理 分类: Android开发2013-11-29 10:58 5009人阅读 评论(0) 收藏 举报 Androidspannabl ...
- Android Fragment用法详解(2)--动态添加Fragment
在上一篇文章<Android Fragment用法详解(1)--静态使用Fragment>我们讲解了Fragment的最简单的用法.这次我们来说一说Fragment复杂一丢丢的用法.在代码 ...
随机推荐
- windows下调用发送邮件程序项*发送邮件
#include <windows.h>int _tmain(int argc, _TCHAR* argv[]){ ShellExecute(NULL, _T("open&quo ...
- 日期函数(sql)
SQL 标量函数----->日期函数 day() .month().year().2009年02月23日 星期一 11:30 SQL 标量函数----->日期函数 day() .month ...
- ASPNET 导出EXCEL表
其实网上有很多关于Excel的例子,但是不是很好,他们的代码没有很全,读的起来还很晦涩.经过这几天的摸索,终于可以完成我想要导出报表Excel的效果了.下面是我的效果图. 一.前台的页面图 GridV ...
- oracle,sqlserver同一个表两个字段和成一个列查询 (详询请加qq:2085920154)
sql 同一张表开两个字段合成一个字段 例如 SQL tab 字段1 字段2 字段3 3 4 莫 合成 tab 字段1 字段2 3-4 莫 SQL SERVER select 字段1 + ...
- IIS发布WCF服务项目之本地
最近由于项目需求,要做一个上传文件附件的功能,由于是多用户访问,所以这就用到了WCF服务,程序编写完成就需要发布了, 下面记录下发布到IIS的过程: 1,安装IIS 第一步:检查Windows7中II ...
- Linux命令小结:crontab/netstat/iostat/sar
crontab cron可以设定在指定的时间运行任务. 1.查看定时任务 [root@client1 ~]# crontab -l -u root */1 * * * * date >> ...
- win7环境下安装运行gotour【转载整理】
转载请注明出处:http://www.cnblogs.com/Vulpers/p/5562586.html 最近尝试学习golang,在某个网站(真忘了)上发现gotour是一款灰常叼的教程& ...
- BOOTSTRAP定制
1.补充:栅格系统中调整列的位置/顺序 (1)方法1:偏移量(col-*-offset-*) (2)方法2:对列进行push/pull操作 col-lg-pull-1 ~ ...
- vue 2 滚动条加载更多数据实现
解析: 判断滚动条到底部,需要用到DOM的三个属性值,即scrollTop.clientHeight.scrollHeight. scrollTop为滚动条在Y轴上的滚动距离. clientHeigh ...
- linux系统编程之I/O内核数据结构
文件在内核中是用三种数据结构进行表示的 (1)文件描述符表:文件描述符表是一个结构体数组,数组的下标就是open函数返回的文件描述符. 文件描述符表的每一个记录有两个字段 *文件描述符标志 * 文 ...