当前位置: 首页 > news >正文

Android 应用开发入门案例:使用 Fragment 实现水果详情展示

在本教程中,我们将使用 Android 中的 Fragment 技术,实现一个简单的“水果信息展示”应用。

左边是水果按钮列表,右边是对应水果的图文详情页面,点击任意按钮即可切换展示内容。


🌟 准备工作(一定要看!!!)

1. 创建2个变量(leftFragment,rightFragment);找到变量

2. 创建一个接口 IChangeFruitListener

3. 在MainActivity.java里面implements(实现)接口;实现接口方法

4. IChangeFruitListener 接口设置rightFragment的ChangFruit方法

✨ 功能简介

  • 使用 Fragment 实现界面左右布局。

  • 左侧是按钮列表:草莓、葡萄、西瓜、西红柿。

  • 右侧展示点击水果对应的图片和详细介绍。

  • 练习了 ActivityFragment 之间的通信,以及 setOnClickListener 的使用。


📁 项目结构和源码(可直接复制使用)

✅ Java 代码部分

1. MainActivity.java(语言:Java)

// 文件名:MainActivity.java
package com.example.fragment003;import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;public class MainActivity extends AppCompatActivity implements IChangeFruitListener {private Left_Fragment leftFragment;private Right_Fragment rightFragment;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);leftFragment = (Left_Fragment) getSupportFragmentManager().findFragmentById(R.id.left_fragment);rightFragment = (Right_Fragment) getSupportFragmentManager().findFragmentById(R.id.right_fragment);leftFragment.setListener(this);}@Overridepublic void ChangeFruit(int i) {rightFragment.ChangeFruit(i);}
}

2. Left_Fragment.java(语言:Java)

// 文件名:Left_Fragment.java
package com.example.fragment003;import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;public class Left_Fragment extends Fragment {private Button btn_1, btn_2, btn_3, btn_4;private IChangeFruitListener listener;@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,@Nullable Bundle savedInstanceState) {View view = inflater.inflate(R.layout.left_fragment, container, false);btn_1 = view.findViewById(R.id.btn_1);btn_2 = view.findViewById(R.id.btn_2);btn_3 = view.findViewById(R.id.btn_3);btn_4 = view.findViewById(R.id.btn_4);btn_1.setOnClickListener(v -> listener.ChangeFruit(1));btn_2.setOnClickListener(v -> listener.ChangeFruit(2));btn_3.setOnClickListener(v -> listener.ChangeFruit(3));btn_4.setOnClickListener(v -> listener.ChangeFruit(4));return view;}public void setListener(IChangeFruitListener listener) {this.listener = listener;}
}

3. Right_Fragment.java(语言:Java)

// 文件名:Right_Fragment.java
package com.example.fragment003;import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;public class Right_Fragment extends Fragment {private ImageView imageView;private TextView textView;@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,@Nullable Bundle savedInstanceState) {View view = inflater.inflate(R.layout.right_fragment, container, false);imageView = view.findViewById(R.id.img);textView = view.findViewById(R.id.txt);return view;}public void ChangeFruit(int i) {switch (i) {case 1:imageView.setImageResource(R.drawable.cm);textView.setText("草莓的详细介绍...");break;case 2:imageView.setImageResource(R.drawable.pt);textView.setText("葡萄的详细介绍...");break;case 3:imageView.setImageResource(R.drawable.xg);textView.setText("西瓜的详细介绍...");break;case 4:imageView.setImageResource(R.drawable.xhs);textView.setText("西红柿的详细介绍...");break;}}
}

4. IChangeFruitListener.java(语言:Java)

// 文件名:IChangeFruitListener.java
package com.example.fragment003;public interface IChangeFruitListener {void ChangeFruit(int i);
}

✅ 布局 XML 文件

1. activity_main.xml(语言:XML)

<!-- 文件名:res/layout/activity_main.xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><fragmentandroid:id="@+id/left_fragment"android:name="com.example.fragment003.Left_Fragment"android:layout_width="150dp"android:layout_height="match_parent" /><fragmentandroid:id="@+id/right_fragment"android:name="com.example.fragment003.Right_Fragment"android:layout_width="match_parent"android:layout_height="match_parent" />
</LinearLayout>

2. left_fragment.xml(语言:XML)

<!-- 文件名:res/layout/left_fragment.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"android:background="#8BC34A"android:padding="10dp"><TextView android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="水果列表"/><Button android:id="@+id/btn_1"android:text="草莓"android:layout_width="wrap_content"android:layout_height="wrap_content" /><Button android:id="@+id/btn_2"android:text="葡萄"android:layout_width="wrap_content"android:layout_height="wrap_content" /><Button android:id="@+id/btn_3"android:text="西瓜"android:layout_width="wrap_content"android:layout_height="wrap_content" /><Button android:id="@+id/btn_4"android:text="西红柿"android:layout_width="wrap_content"android:layout_height="wrap_content" />
</LinearLayout>

3. right_fragment.xml(语言:XML)

<!-- 文件名:res/layout/right_fragment.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"><ImageViewandroid:id="@+id/img"android:layout_width="match_parent"android:layout_height="300dp"android:scaleType="fitXY"android:src="@drawable/cm" /><TextViewandroid:id="@+id/txt"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="水果详细介绍..." />
</LinearLayout>

🖼️ 程序运行效果

左侧水果按钮右侧显示内容
点击“草莓”显示草莓图片和详细营养说明
点击“葡萄”显示葡萄图片和功效介绍
点击“西瓜”展示西瓜图片和解暑作用
点击“西红柿”展示西红柿图文及番茄红素抗氧化说明

运行后页面被分为左右两栏,左栏点击按钮会改变右栏显示内容。非常适合新手学习 Fragment 组件的基本使用方法。


✅ 总结

本示例适合 Android 入门者学习:

  • 如何使用 Fragment 布局

  • 如何进行 Activity 和 Fragment 的交互

  • 如何通过按钮触发逻辑变化并更新 UI

 

相关文章:

  • Linux系统:虚拟文件系统与文件缓冲区(语言级内核级)
  • 蓝牙身份证阅读器使用Uniapp调用二次开发demo
  • 湖北理元理律师事务所:债务优化如何实现还款与生活的平衡?
  • 【具身智能算法入门】VLM/VLA 算法入门指南
  • Spring Cloud: Nacos
  • 全栈开发实战:FastAPI + React + MongoDB 构建现代Web应用
  • PyTorch API 5 - 全分片数据并行、流水线并行、概率分布
  • 2025年RAG技术有哪些创新点?
  • Octave 绘图快速入门指南
  • Java云原生到底是啥,有哪些技术
  • 【目录】学习如何使用dify建设专业知识库
  • C语言_程序的段
  • 蔚来三品牌大整合:乐道产品研发、销售体系并入蔚来各集群|36氪独家
  • Ceph集群故障处理 - PG不一致修复
  • FPGA笔试题review
  • Java大数据可视化在城市空气质量监测与污染溯源中的应用:GIS与实时数据流的技术融合
  • OSPF综合性实验
  • 判断点与椭球的位置关系及计算连线交点的数学原理与Babylon.js实现
  • 记录 ubuntu 安装中文语言出现 software database is broken
  • visual studio 2015 安装闪退问题
  • 三大猪企4月生猪销量同比均增长,销售均价同比小幅下降
  • 甘肃省政府原副省长赵金云被决定逮捕
  • 盖茨:20年内将捐出几乎全部财富,盖茨基金会2045年关闭
  • 上海推动AI+文旅深度融合,MaaS平台和产业基地落地徐汇
  • 洞天寻隐·学林纪丨玉洞桃源:仇英青绿山水画中的洞天与身体
  • 公募基金改革八大要点:建立浮动管理费收取机制、降低规模排名考核权重