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用法的更多相关文章

  1. Android Meun 用法

    Android Meun 用法 点击菜单实体键弹出菜单:如下图 main_activity.xml <?xml version="1.0" encoding="ut ...

  2. Android ViewPager 用法

    Android ViewPager 用法 场景:一般第一次打开应用程序时,程序会有一个提示页来给展现应用程序都有哪些功能:或者程序更新时,又更新哪些新特性,都可以使用ViewPager Demo 描述 ...

  3. Android Intent 用法全面总结

    [代码全屏查看]-Android Intent 用法全面总结 // [1].[代码] 调用拨号程序 跳至 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] / ...

  4. Android GLSurfaceView用法详解(二)

    输入如何处理       若是开发一个交互型的应用(如游戏),通常需要子类化 GLSurfaceView,由此可以获取输入事件.下面有个例子: java代码: package eoe.ClearTes ...

  5. Android ScrollView用法

    Android ScrollView用法 今天试着使用了一下Android的滚轮,以下是一个小小的测试,读取测试文件,主要是使用scrollTo函数和getScrollY(),程序点击BUTTON按钮 ...

  6. Android Service用法知识点的讲解

    Android Service 学习Service相关知识点: android service 的基础知识,生命周期,service分类,运行地点(本地服务,远程服务),运行类型(前台服务,后台服务) ...

  7. Android Fragment用法知识点的讲解

    Android Fragment用法的讲解 碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示.Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了 ...

  8. Android spannableStringBuilder用法整理

    Android spannableStringBuilder用法整理 分类: Android开发2013-11-29 10:58 5009人阅读 评论(0) 收藏 举报 Androidspannabl ...

  9. Android Fragment用法详解(2)--动态添加Fragment

    在上一篇文章<Android Fragment用法详解(1)--静态使用Fragment>我们讲解了Fragment的最简单的用法.这次我们来说一说Fragment复杂一丢丢的用法.在代码 ...

随机推荐

  1. .NET程序优化

    一.数据库操作 1. 用完马上关闭数据库连接 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证, 比较耗费服务器资 源.ASP.NET 中提供了连 ...

  2. ZooKeeper概述(转)

    译自http://zookeeper.apache.org/doc/trunk/zookeeperOver.html ZooKeeper是一个用于分布式应用的开源分布式协调服务.它提供了简单的原语集合 ...

  3. 用GUI完成了斗地主发牌

    JAVA真的很强大,简单的步骤他自己就可以帮助我们解决了,简单,方便,并且还有着非常大的开发潜力

  4. Oracle 去除两边空格

    sql 去掉两头空格sql语法中没有直接去除两头空格的函数,但有ltrim()去除左空格rtrim()去除右空格.合起来用就是sql的trim()函数,即select ltrim(rtrim(UsrN ...

  5. PC和HOST之间文件传送

    从PC到HOST 文件传送表(*.srl) C:\123.txt text ~'LIANG.TEST.LIB.123' 批处理文件(*.bat) SEND "PC文件全路径" 'H ...

  6. vim段替换

    文件中有很多字段: dd ssdf df aaa="100" dd ssdf df aaa="200" asdf sdf sdf aaa="700&q ...

  7. VS2012智能提示消失的解决方法

    1.点击电脑左下角的“开始菜单”->"所有程序"->Microsoft Visual Studio 2012->Visual Studio Tools->V ...

  8. Android安全开发之WebView中的地雷

    Android安全开发之WebView中的地雷 0X01 About WebView 在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者 ...

  9. Debian 7(Linux) 安装SSH使用SecureCRT连接配置

    1 Debian 安装 ssh2 首先确保你的Debian或者linux安装ssh并开启ssh服务 Debian和ubuntu的安装方法一样,只要源OK的话,可以直接安装 apt-get instal ...

  10. 关于maven中央仓库jar包不存在问题

    最近接手一个maven项目,引入依赖的时候报了一个 Missing artifact com.oracle:ojdbc6:jar:12.1.0.1 pom.xml 的错误,网上一查,原来是Oracle ...