首页 > 其他分享 >Android开发 - Movie 类详解

Android开发 - Movie 类详解

时间:2024-08-05 11:30:18浏览次数:11  
标签:String Movie 电影 private movieList 详解 Android public

基本结构

  • Movie类应该包含电影的基本信息。假设我们需要存储以下信息

    • 电影标题(title)

    • 电影描述(description)

    • 发布年份(releaseYear)

    • 评分(rating)

    • 海报URL(posterUrl)

  • 我们将为这些属性创建一个

创建Movie类

  • 首先定义Movie类并添加相应的属性构造方法getter/setter方法

    public class Movie {
        // 电影标题
        private String title;
        // 电影描述
        private String description;
        // 发布年份
        private int releaseYear;
        // 评分
        private double rating;
        // 海报URL
        private String posterUrl;
    
        // 构造方法,用于初始化Movie对象
        public Movie(String title, String description, int releaseYear, double rating, String posterUrl) {
            this.title = title; // 设置电影标题
            this.description = description; // 设置电影描述
            this.releaseYear = releaseYear; // 设置发布年份
            this.rating = rating; // 设置评分
            this.posterUrl = posterUrl; // 设置海报URL
        }
    
        // 获取电影标题
        public String getTitle() {
            return title;
        }
    
        // 设置电影标题
        public void setTitle(String title) {
            this.title = title;
        }
    
        // 获取电影描述
        public String getDescription() {
            return description;
        }
    
        // 设置电影描述
        public void setDescription(String description) {
            this.description = description;
        }
    
        // 获取发布年份
        public int getReleaseYear() {
            return releaseYear;
        }
    
        // 设置发布年份
        public void setReleaseYear(int releaseYear) {
            this.releaseYear = releaseYear;
        }
    
        // 获取评分
        public double getRating() {
            return rating;
        }
    
        // 设置评分
        public void setRating(double rating) {
            this.rating = rating;
        }
    
        // 获取海报URL
        public String getPosterUrl() {
            return posterUrl;
        }
    
        // 设置海报URL
        public void setPosterUrl(String posterUrl) {
            this.posterUrl = posterUrl;
        }
    }
    

Movie类的使用

  • 创建 Movie 对象的实例以及设置其属性

    // 创建一个Movie对象实例
    Movie inception = new Movie(
        "Inception", // 电影标题
        "A thief who steals corporate secrets through the use of dream-sharing technology is given the inverse task of planting an idea into the mind of a C.E.O.", // 电影描述
        2010, // 发布年份
        8.8, // 评分
        "https://example.com/inception_poster.jpg" // 海报URL
    );
    
  • 显示电影信息

    • 在实际的 Android 应用中,我们通常会从 API 获取电影信息,并将这些信息显示在 UI 上。以下是一个简单的示例,演示如何在 RecyclerView 中显示电影列表

      • 创建主布局文件定义一个 RecyclerView 用于显示电影列表res/layout/activity_main.xml

        <!-- res/layout/activity_main.xml -->
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
        
            <!-- 定义一个RecyclerView,用于显示电影列表 -->
            <RecyclerView
                android:id="@+id/recyclerView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_margin="16dp"
                android:scrollbars="vertical" />
        </LinearLayout>
        
      • 创建电影项布局文件定义每个电影项在 RecyclerView 中的显示方式res/layout/item_movie.xml

        <!-- res/layout/item_movie.xml -->
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:padding="16dp">
        
            <ImageView
                android:id="@+id/posterImageView"
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:scaleType="centerCrop" />
        
            <TextView
                android:id="@+id/titleTextView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="18sp"
                android:textStyle="bold"
                android:paddingTop="8dp" />
        
            <TextView
                android:id="@+id/descriptionTextView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="14sp"
                android:paddingTop="4dp" />
        
            <TextView
                android:id="@+id/releaseYearTextView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="12sp"
                android:paddingTop="4dp" />
        
            <TextView
                android:id="@+id/ratingTextView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="12sp"
                android:paddingTop="4dp" />
        </LinearLayout>
        
      • 创建 RecyclerView.Adapter 类来绑定 Movie 数据MovieAdapter.java

        public class MovieAdapter extends RecyclerView.Adapter<MovieAdapter.MovieViewHolder> {
            // 电影列表
            private List<Movie> movieList;
        
            // 构造方法,传入电影列表
            public MovieAdapter(List<Movie> movieList) {
                this.movieList = movieList; // 初始化电影列表
            }
        
            // 创建 ViewHolder
            @Override
            public MovieViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                // 加载电影项布局
                View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_movie, parent, false);
                return new MovieViewHolder(view); // 创建并返回 ViewHolder
            }
        
            // 绑定 ViewHolder
            @Override
            public void onBindViewHolder(MovieViewHolder holder, int position) {
                Movie movie = movieList.get(position); // 获取当前电影
                holder.bind(movie); // 绑定电影数据到 ViewHolder
            }
        
            // 获取电影列表大小
            @Override
            public int getItemCount() {
                return movieList.size();
            }
            // 以上设定了形参的传参规则
        
            // 以下自定义 ViewHolder 类:包含具体的实现方法
            public static class MovieViewHolder extends RecyclerView.ViewHolder {
                // 定义 UI 元素
                private TextView titleTextView;
                private TextView descriptionTextView;
                private TextView releaseYearTextView;
                private TextView ratingTextView;
                private ImageView posterImageView;
        
                // 构造方法,初始化 UI 元素
                public MovieViewHolder(View itemView) {
                    super(itemView);
                    titleTextView = itemView.findViewById(R.id.titleTextView); // 电影标题 TextView
                    descriptionTextView = itemView.findViewById(R.id.descriptionTextView); // 电影描述 TextView
                    releaseYearTextView = itemView.findViewById(R.id.releaseYearTextView); // 发布年份 TextView
                    ratingTextView = itemView.findViewById(R.id.ratingTextView); // 评分 TextView
                    posterImageView = itemView.findViewById(R.id.posterImageView); // 海报 ImageView
                }
        
                // 绑定电影数据到 UI 元素
                public void bind(Movie movie) {
                    titleTextView.setText(movie.getTitle()); // 设置电影标题
                    descriptionTextView.setText(movie.getDescription()); // 设置电影描述
                    releaseYearTextView.setText(String.valueOf(movie.getReleaseYear())); // 设置发布年份
                    ratingTextView.setText(String.valueOf(movie.getRating())); // 设置评分
                    // 加载海报图片,可以使用 Glide 或 Picasso 库
                    Glide.with(itemView.getContext()).load(movie.getPosterUrl()).into(posterImageView); // 加载海报图片
                }
            }
        }
        
      • 启动类中设置 RecyclerView:在 ActivityFragment设置 RecyclerView,并绑定 MovieAdapter

        public class MainActivity extends AppCompatActivity {
            // RecyclerView 对象
            private RecyclerView recyclerView;
            // MovieAdapter 对象
            private MovieAdapter movieAdapter;
            // 电影列表
            private List<Movie> movieList;
        
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main); // 设置布局文件
        
                recyclerView = findViewById(R.id.recyclerView); // 获取 RecyclerView 对象
                recyclerView.setLayoutManager(new LinearLayoutManager(this)); // 设置布局管理器
        
                movieList = new ArrayList<Movie>(); // 初始化电影列表
                // 添加一些示例电影数据
                movieList.add(new Movie("Inception", "A thief who steals corporate secrets...", 2010, 8.8, "https://example.com/inception_poster.jpg"));
                movieList.add(new Movie("The Dark Knight", "When the menace known as the Joker emerges...", 2008, 9.0, "https://example.com/dark_knight_poster.jpg"));
                
                movieAdapter = new MovieAdapter(movieList); // 初始化 MovieAdapter
                recyclerView.setAdapter(movieAdapter); // 设置 Adapter
            }
        }
        
    • 以上是一个基本的示例,实际应用中可以根据需求进行扩展优化,例如从 API 获取数据实现搜索功能

标签:String,Movie,电影,private,movieList,详解,Android,public
From: https://www.cnblogs.com/ajunjava/p/18342873

相关文章

  • Android 之 PopUpWindow 控件的使用(努力z的日记)
    Gif示例:上面的示例是模仿一些App设置的弹窗,为了实现上面gif中的效果,可以通过PopUpWindow实现。以下是实现过程。(欢迎大佬指证o.o)1:创建PopUpWindow动画(anim)    这个anim是在开发中扮演很重要的一环,因为好看o.o,所以麻烦。浅入浅出是我们比较常见的。(因为周师傅只会......
  • Android R Settings关于屏保/PowerManagerService欺骗系统不让其进入休眠状态
    //屏保设置界面./packages/apps/Settings/src/com/android/settings/dream/DreamSettings.java//和PowerManagerService建立联系./frameworks/base/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java//系统时钟屏保继承了DreamService./package......
  • Spring Boot 基于 SCRAM 认证集成 Kafka 的详解
    一、说明在现代微服务架构中,Kafka作为消息中间件被广泛使用,而安全性则是其中的一个关键因素。在本篇文章中,我们将探讨如何在SpringBoot应用中集成Kafka并使用SCRAM认证机制进行安全连接;并实现动态创建账号、ACL权限、Topic,以及生产者和消费者等操作。需要准备一个配......
  • android10.0(Q) MTK 6765 user版本打开root权限
    前言相比较Android8.1、9.0而言,Android10.0版本的root变得相当麻烦,10.0中引入了动态分区机制,同样的要想完全adbroot,需要fastboot解锁,然后关闭verity才能adbremount成功。我尝试和之前一样修改fstab.in.mt6765中的ro和rw初始值,容易导致无法正常开机,在......
  • Java RMI技术详解与案例分析
    JavaRMI(RemoteMethodInvocation)是一种允许Java虚拟机之间进行通信和交互的技术。它使得远程Java对象能够像本地对象一样被访问和操作,从而简化了分布式应用程序的开发。一些应用依然会使用RMI来实现通信和交互,今天的内容我们来聊聊RMI的那些事儿。一、先来了解一下概......
  • 详解国内医疗大模型,非常详细收藏我这一篇就够了
    医疗大模型是近年来随着人工智能技术的发展而兴起的一种新型工具,它们利用大数据和先进的机器学习算法来改善医疗服务和医疗决策。下面将介绍几种代表性的医疗大模型,并探讨其未来的发展趋势。医疗大模型概述医疗大模型通常指的是那些基于大规模数据训练的人工智能模型,它们......
  • Android中毛玻璃效果的两种实现
    Android中毛玻璃效果主要有两种实现方式。1.使用JAVA算法FastBlur实现方法1先将图片缩小,然后放大图片,再设置为控件背景以达到更模糊的效果,同时也提升模糊算法的处理效率。2.使用Android自带类RenderScript实现方法2模糊半径只能设置1-25。对比下来同样的模糊半径,方法1的模......
  • Android activity主题设置
    主题配置<stylename="MainThemeCamera"parent="Theme.AppCompat.DayNight.NoActionBar"><itemname="android:windowBackground">@color/black</item><itemname="android:windowTranslucentStatu......
  • Android mvvm使用流程
    Androidmvvm使用流程一.几种常见架构模式对比1.MVC(Model-View-Controller)MVC模式的优点在于模块化、可扩展性和可维护性,但缺点是控制器和视图之间的耦合度较高。2.MVP(Model-View-Presenter)模式Presenter同时持有Model和View对象,缺点是V层与P层还是有一定的耦合度3.MVVM(Model-View......
  • 致高考生——信息安全|专业详解(非常详细)零基础入门到精通,收藏这一篇就够了
    01专业介绍信息安全专业本科阶段学制一般为4年,授予学位:工学学士、理学学士或管理学学士。本专业是计算机、通信、数学、法律、管理等学科的交叉学科,主要研究确保信息安全的科学与技术,培养能够从事计算机、通信、电子商务、电子政务、电子金融等领域的信息安全高级专门人......