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复杂一丢丢的用法.在代码 ...
随机推荐
- Python3利用BeautifulSoup4批量抓取站点图片的代码
边学边写代码,记录下来.这段代码用于批量抓取主站下所有子网页中符合特定尺寸要求的的图片文件,支持中断. 原理很简单:使用BeautifulSoup4分析网页,获取网页<a/>和<im ...
- jQuery Mobile 表单基础
jQuery Mobile 会自动为 HTML 表单添加优异的便于触控的外观. jQuery Mobile 表单结构 jQuery Mobile 使用 CSS 来设置 HTML 表单元素的样式,以使其 ...
- 识别有效的IP地址和掩码并进行分类统计
该题我的想法是把每一个ip看出一个整数,将读取得到的数据一一与给定的ip范围比较即可.另外本题应该注意的地方是scanf读取俩字符串的方法. 代码如下: #include<stdio.h> ...
- JavaSE知识结构
- SikuliLibrary 库关键字注释
在 https://github.com/rainmanwy/robotframework-SikuliLibrary 看到rainmanwy 整理的SikuliLibrary库,非常适合工作需要, ...
- 常见sizeof 笔试题
最近面试过程中遇到了很多很多sizeof的问题. 现在总结一下: #include <stdio.h> #include <string.h> void fun(int arr ...
- visul studio 文件分包
1.搜索算法. 2.软件控制逻辑. 3.自定义控件. 4.GUI模块. 5.线程化操作
- jsp中,个别乱码进行转码操作
来自大神 if(xh!=null && xh!=""){ xhmc =new String(xh.getBytes("ISO-8859-1"), ...
- tomcat监控
参考:http://www.linuxidc.com/Linux/2012-11/74003.htm #!/bin/sh monitorlog=/opt/tomcat7/logs/monitor.lo ...
- Angular解决双向数据绑定
<!DOCTYPE html> <html ng-app="myApp1"><body><div ng-controller=" ...