首页 > 其他分享 >Android开发 - ArrayList类动态数组与ArrayList<Fragment>解析

Android开发 - ArrayList类动态数组与ArrayList<Fragment>解析

时间:2024-07-30 17:10:50浏览次数:7  
标签:遍历 Fragment ViewPager ArrayList add numbers Android 解析

什么是ArrayList

  • ArrayListJava编程语言中的一个,它实现了动态数组的数据结构。简单来说,ArrayList允许我们创建一个可以动态增长或缩减的数组,这在处理需要频繁添加或删除元素的情况下非常有用

主要特点和用途

  1. 动态大小ArrayList的大小可以根据需要动态增长或缩减,与普通的数组不同,不需要预先指定数组的大小

  2. 泛型支持:可以使用泛型来指定ArrayList中存储的元素类型,例如ArrayList<String>表示一个字符串类型的动态数组

  3. 数据操作:提供了丰富的方法来操作数据,如添加删除获取元素等。可以使用add()方法添加元素,使用remove()方法删除元素,使用get()方法获取指定位置的元素

  4. 迭代和遍历:可以通过迭代器(Iterator)增强型for循环来遍历ArrayList中的所有元素,方便进行数据处理和操作

  5. 适用范围:在Android开发中,ArrayList广泛应用于存储和操作各种数据类型,如数据列表Fragment列表视图列表

ArrayList的使用方式

// 创建一个存储整数的ArrayList
ArrayList<Integer> numbers = new ArrayList<>();

// 添加元素到ArrayList
numbers.add(10);
numbers.add(20);
numbers.add(30);

// 获取指定位置的元素
int secondNumber = numbers.get(1); // 获取第二个元素,即20

// 删除元素
numbers.remove(0); // 删除第一个元素

// 遍历ArrayList
for (int number : numbers) {
    System.out.println(number);
}

ArrayList的三种遍历方式

//迭代器遍历
Iterator<Integer> it = numbers.iterator();
while(it.hasNext()){
    System.out.print(it.next() + " ");
} 
 
//索引值遍历
for(int i = 0; i < numbers.size(); i++){
   System.out.print(numbers.get(i) + " ");
}
 
//增强型for循环遍历
for(Integer number : numbers){
   System.out.print(number + " ");
}
  • 遍历ArrayList时,通过索引值遍历效率最高增强型for循环遍历次之迭代器遍历最低

ArrayList<Fragment>的使用

  • ArrayList<Fragment>通常用于管理和动态操作多个Fragment对象。以下是一个简单的使用案例,展示了如何使用ArrayList<Fragment>管理一组Fragment并将它们传递给一个PagerAdapter用于ViewPager的显示

  • 启动类Java代码

    import androidx.appcompat.app.AppCompatActivity;
    import androidx.viewpager.widget.ViewPager;
    import android.os.Bundle;
    
    import java.util.ArrayList;
    
    public class MainActivity extends AppCompatActivity {
        private ViewPager viewPager;
        private ArrayList<Fragment> fragmentList;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    		
            //创建了一个ViewPager用于显示多个Fragment
            viewPager = findViewById(R.id.viewPager);
    
            //初始化Fragment列表
            //初始化了一个包含三个Fragment的ArrayList<Fragment>(这里假设Fragment1、Fragment2和Fragment3是已经实现的Fragment类)
            fragmentList = new ArrayList<>();
            fragmentList.add(new Fragment1());
            fragmentList.add(new Fragment2());
            fragmentList.add(new Fragment3());
    
            //设置ViewPager的适配器
            //创建了FragmentPagerAdapter适配器,并将FragmentManager和ArrayList<Fragment>传递给它
            FragmentPagerAdapter adapter = new FragmentPagerAdapter(getSupportFragmentManager(), fragmentList);
            //最后,将适配器设置给ViewPager,这样就可以在ViewPager中显示这三个Fragment了
            viewPager.setAdapter(adapter);
        }
    }
    
  • 布局xml代码

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <androidx.viewpager.widget.ViewPager
            android:id="@+id/viewPager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:overScrollMode="never" />
    </LinearLayout>
    
  • 这种方式可以灵活地管理多个Fragment的显示顺序和数量,适用于需要在同一个屏幕上切换多个不同内容的场景,如主页的不同模块或者引导页等

标签:遍历,Fragment,ViewPager,ArrayList,add,numbers,Android,解析
From: https://www.cnblogs.com/ajunjava/p/18332876

相关文章

  • 从零开始学习 Android 的 100 个课程
    哈喽大家好,今天给大家推荐的是从零开始学习Android的100个课程,接下来我会每天更新两篇课程经验供大家参考学习;以下是为大家设计的从零开始学习Android的100个课程:一、Android基础概念Android系统概述Android发展历程Android系统架构Android版本特性Android......
  • Docker镜像构建:技术深度解析与实践指南
    本文深入分析了Docker镜像构建的技术细节,从基础概念到高级技术,涵盖了多阶段构建、安全性优化、性能提升及实战案例。旨在为专业人士提供全面的技术洞察和实用指导,以提升Docker镜像构建的效率和安全性。关注【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有......
  • Android9.0 Activity启动流程分析(三)
    文章目录   1、Android屏幕层级       1.1、Window和PhoneWindow的概念       1.2、View和ViewRootImpl的概念   2、ClientLiftCycleManager   3、handleLaunchActivity       3.1、CreatActivity       3.2、setContentView   4......
  • Android 11 关于app的权限重置
    Android11Google针对权限系统又加了更多的限制,比如1.权限的单次授权;2.某个app长时间不使用,权限会被自动更新/重置!关于app的权限重置AndroidFramework权限篇四之AppOps机制Settings里面关于app权限重置的switch流程./packages/apps/Settings/src/com/android/settings/......
  • Android系统启动流程(4) —— 解析Launcher启动过程
    链接https://blog.csdn.net/lixiong0713/article/details/106762977相关文章Android系统启动流程(1) —— 解析init进程启动过程Android系统启动流程(2) —— 解析Zygote进程启动过程Android系统启动流程(3) —— 解析SystemServer进程启动过程Launcher启动过程  ......
  • Android开发 - setOnTouchListener 监听触控事件解析
    事件解析setOnTouchListener(newOnTouchListener(){});:事件分发解析MotionEvent.ACTION_DOWN:按下MotionEvent.ACTION_MOVE:滑动MotionEvent.ACTION_UP:抬起使用方法//部分区域调用需要对象:view.setOnTouchListener(newview.OnTouchListener(){})setOnTouchListe......
  • 深入解析 Go 语言 GMP 模型:并发编程的核心机制
    前言本章是Go并发编程的起始篇章,在未来几篇文章中我们会围绕Go并发编程进行理论和实战的学习,欢迎关注我哦!本章主要以介绍GMP模型为主,偏向于面试和八股,目的是让小伙伴们注重于知识本身,面向面试,面向八股,面向加薪。Go语言自诞生以来,就以其简洁、高效的并发模型著称。而这其中的核......
  • 线性回归和逻辑回归揭示数据的隐藏模式:理论与实践全解析
    机器学习之线性回归和逻辑回归1.简介1.1机器学习概述1.2监督学习的定义与重要性1.3线性回归和逻辑回归在监督学习中的作用1.3.1线性回归1.3.2逻辑回归2.线性回归(LinearRegression)2.1定义与目标2.1.1回归问题的定义2.1.2预测连续目标变量2.2模型概述2.2.1......
  • Android开发 - 用Math类方法计算弧度后转为角度解析
    方法参数解析Math.atan2(y,x):将两个参数计算出弧度参数解析:y:指定点的y坐标的数字;在三角计算中为对边边长;在圆的计算弧度中为指定y点与中心点的距离,指定点y减去中心点的y即可得出x:指定点的x坐标的数字;在三角计算中为对边边长;在圆的计算弧度中为指定x点与中心点的距离,指......
  • android开发基础
    打印日志Log.e:表示错误信息,比如可能导致程序崩溃的异常。Log.w:表示警告信息。Log.i:表示一般消息。Log.d:表示调试信息,可把程序运行时的变量值打印出来,方便跟踪调试。Log.v:表示冗余信息。app开发语言Java是Android开发的主要编程语言,创建新项目时,Language栏默认选择了J......