Android Studio App开发之列表类视图中基本适配器BaseAdapter的使用及实战(附源码 超详细)

简介: Android Studio App开发之列表类视图中基本适配器BaseAdapter的使用及实战(附源码 超详细)

需要图片集或源码请点赞关注收藏后评论区留言~~~

基本适配器BaseAdapter

由前几篇博客的内容可以得知,数组适配器适用于纯文本的列表数据,简单适配器适用于带图标的列表数据,然而实际应用常常有更复杂的列表,比如每个列表项存在三个以上的控件,这种情况即便是简单适配器也很吃力,而且不易扩展,为此Android提供了一种适应性更强的基本适配器BaseAdapter,该适配器允许开发者在别的代码文件中编写操作代码,大大提高了代码的可读性和可维护性

从BaseAdapter派生的数据适配器主要实现以下五种方法

构造方法  指定需要处理的数据集合

getCount 获取列表项的个数

getItem 获取列表项的数据

getItemId 获取列表项的编号

getView 获取每项的展示视图

以下拉框控件为载体,演示如何操作BaseAdapter,具体编码过程分为三步

1:编写列表项的布局文件

2:写个新的适配器BaseAdapter 实现对列表项的管理操作

3:在页面代码中创建该适配器实例 并交给下拉框设置

效果如下 可以同时显示多个图片和文本 更加美观丰富

最后代码如下

Java类代码

package com.example.chapter08;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Spinner;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.chapter08.adapter.PlanetBaseAdapter;
import com.example.chapter08.bean.Planet;
import java.util.List;
public class BaseAdapterActivity extends AppCompatActivity {
    private List<Planet> planetList; // 声明一个行星列表
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_base_adapter);
        initPlanetSpinner(); // 初始化行星列表的下拉框
    }
    // 初始化行星列表的下拉框
    private void initPlanetSpinner() {
        // 获取默认的行星列表,即水星、金星、地球、火星、木星、土星
        planetList = Planet.getDefaultList();
        // 构建一个行星列表的适配器
        PlanetBaseAdapter adapter = new PlanetBaseAdapter(this, planetList);
        // 从布局文件中获取名叫sp_planet的下拉框
        Spinner sp_planet = findViewById(R.id.sp_planet);
        sp_planet.setPrompt("请选择行星"); // 设置下拉框的标题
        sp_planet.setAdapter(adapter); // 设置下拉框的列表适配器
        sp_planet.setSelection(0); // 设置下拉框默认显示第一项
        // 给下拉框设置选择监听器,一旦用户选中某一项,就触发监听器的onItemSelected方法
        sp_planet.setOnItemSelectedListener(new MySelectedListener());
    }
    // 定义一个选择监听器,它实现了接口OnItemSelectedListener
    private class MySelectedListener implements OnItemSelectedListener {
        // 选择事件的处理方法,其中arg2代表选择项的序号
        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            Toast.makeText(BaseAdapterActivity.this, "您选择的是" + planetList.get(arg2).name, Toast.LENGTH_LONG).show();
        }
        // 未选择时的处理方法,通常无需关注
        public void onNothingSelected(AdapterView<?> arg0) {}
    }
}

XML文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="5dp">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="行星的基本适配器"
        android:textColor="@color/black"
        android:textSize="20sp" />
    <Spinner
        android:id="@+id/sp_planet"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:spinnerMode="dialog" />"
</LinearLayout>

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
3天前
|
移动开发 小程序
仿青藤之恋社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
仿青藤之恋社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
21 3
|
21天前
|
监控 安全 开发者
山东布谷科技:关于直播源码|语音源码|一对一直播源码提交App Store的流程及重构经验
分享提交直播源码,一对一直播源码,语音源码到Appstore的重构经验!
|
23天前
|
NoSQL 应用服务中间件 PHP
布谷一对一直播源码服务器环境配置及app功能
一对一直播源码阿里云服务器环境配置及要求
|
2月前
|
开发工具
uniapp, 短剧视频类App实现参考,支持滑动播放,仿抖音 仿陌陌 短视频 无限滑动播放 视频流
阿里云点播服务web播放器sdk,短剧视频类App实现参考。仿抖音 仿陌陌 短视频 无限滑动播放 视频流。无uniapp video 原生组件的层级、遮挡、覆盖问题,适合与不同功能视图组合使用,实现丰富的应用功能。
uniapp, 短剧视频类App实现参考,支持滑动播放,仿抖音 仿陌陌 短视频 无限滑动播放 视频流
|
19天前
|
机器人
布谷直播App系统源码开发之后台管理功能详解
直播系统开发搭建管理后台功能详解!
|
1月前
|
Java Unix Linux
Android Studio中Terminal运行./gradlew clean build提示错误信息
遇到 `./gradlew clean build`命令执行出错时,首先应检查错误信息的具体内容,这通常会指向问题的根源。从权限、环境配置、依赖下载、版本兼容性到项目配置本身,逐一排查并应用相应的解决措施。记住,保持耐心,逐步解决问题,往往复杂问题都是由简单原因引起的。
266 2
|
28天前
|
NoSQL PHP Redis
布谷语音app源码服务器环境配置及技术开发语言
布谷语音app源码服务器环境配置及技术语言研发。。
|
2月前
|
XML IDE 开发工具
🔧Android Studio高级技巧大公开!效率翻倍,编码不再枯燥无味!🛠️
【9月更文挑战第11天】在软件开发领域,Android Studio凭借其强大的功能成为Android开发者的首选IDE。本文将揭示一些提升开发效率的高级技巧,包括自定义代码模板、重构工具、高级调试技巧及多模块架构。通过对比传统方法,这些技巧不仅能简化编码流程,还能显著提高生产力。例如,自定义模板可一键插入常用代码块;重构工具能智能分析并安全执行代码更改;高级调试技巧如条件断点有助于快速定位问题;多模块架构则提升了大型项目的可维护性和团队协作效率。掌握这些技巧,将使你的开发之旅更加高效与愉悦。
65 5
获取当前安装app列表
转载自:http://www.mamicode.com/info-detail-470456.html ios 5 6 7 可以通过解析"/private/var/mobile/Library/Caches/com.app.mobile.installation.plist" 文件获取当前安装app的列表了.ios8 请使用下面这个plist文件. "/var/mobile/L
1165 0
|
1月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
519 7

热门文章

最新文章