欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > Android 应用开发入门案例:使用 Fragment 实现水果详情展示

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

2025/5/13 3:44:32 来源:https://blog.csdn.net/2402_84971234/article/details/147831571  浏览:    关键词: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

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词