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

安卓(android)饭堂广播【Android移动开发基础案例教程(第2版)黑马程序员】

一、实验目的(如果代码有错漏,可查看源码)

1.熟悉广播机制的实现流程。

2.掌握广播接收者的创建方式。

3.掌握广播的类型以及自定义官博的创建。

二、实验条件

熟悉广播机制、广播接收者的概念、广播接收者的创建方式、自定广播实现方式以及有序广播和无需广播的工作流程。

三、实验内容

1.搭建饭堂广播界面布局。

2.实现饭堂广播界面的功能。

3.运行测试广播程序。

四、实验指导

1.搭建饭堂广播界面布局

在饭堂广播项目程序中只显示一个首页界面(饭堂广播界面),该界面主要拥有展示喇叭图片、食物图片、兔子图片和两个以上对话气泡为背景的文本提示信息,

(1)创建项目程序。创建一个CanteenRadio项目,指定项目包名。

(2)导入界面图片。将饭堂广播界面所需要的图片资源content_left_bg.png、content_right_bg.png、foods.png、horn.png、rabbit.png导入到程序中创建的drawable-hdpi文件夹中。

(3)添加界面控件。在activity_main.xml布局文件中,添加三个ImageView控件分别用于显示喇叭图片、食物图片和兔子图片,两个TeatView控件分别用于显示喇叭提示的“点击喇叭”或 “开饭啦!”,布局界面实现代码如下:

​
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:padding="8dp"
    android:background="@drawable/item_bg">

    <ImageView
        android:id="@+id/iv_photo"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_centerVertical="true"
        app:srcCompat="@drawable/user" />

    <TextView
        android:id="@+id/tv_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/iv_photo"
        android:layout_marginTop="5dp"
        android:layout_toEndOf="@+id/iv_photo"
        android:layout_marginStart="20dp"
        android:textColor="@color/black"
        android:text="李雷" />

    <TextView
        android:id="@+id/tv_phone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/iv_photo"
        android:layout_marginBottom="5dp"
        android:layout_toEndOf="@+id/iv_photo"
        android:layout_marginStart="20dp"
        android:textColor="@color/black"
        android:text="13520677894" />
</RelativeLayout>

​

(4)修改默以标题栏的名称。将饭堂广播程序的默认标题CanteenRadio修改为“饭堂广播”,需要修改res→values目录下的strings.xml文件,在该文件中找到属性name的位为app_Name的标签,将该杯签中app_name的值设置为 “饭堂广播”,具体代码如下所示:

<string name="app_name">饭堂广播</string>

2.实现饭堂广播界面的功能

在饭堂广播项目程序中,当点击饭堂广播界面中的喇叭图片时,喇叭对应的气泡中的文字会由默认的“点击喇叭”替换为“开饭啦!”,同时程序会通过发送广播的形式将开饭的消息发送给界面下方的小兔子。当小兔子通过广播接收者收到开饭的消息时,程序会将小兔子对应的气泡设置为显示状态,并在该气泡中显示接收到的“开饭啦!”消息。具体实现代码如下:

​
package cn.itcast.contacts;
 
public class ContactInfo {
    private String contactName;
    private String phoneNumber;
 
    public String getContactName() {
        return contactName;
    }
 
    public void setContactName(String contactName) {
        this.contactName = contactName;
    }
 
    public String getPhoneNumber() {
        return phoneNumber;
    }
 
    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }
}

​

package cn.itcast.canteenradio;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
class MyBroadcastReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals("Open_Rice")){
                Log.i("MyBroadcastReceiver","自定义的广播接收者,接收到了发送开饭信号的广播消息");
            }
            Log.i("MyBroadcastReceiver",intent.getAction());
        }
    }

 五、代码下载地址:

android: 实现注册界面、实现注册界面、饭堂小广播、音乐播放器、记事本、读取手机通讯录、学生管理系统 - Gitee.com


http://www.kler.cn/a/526498.html

相关文章:

  • 572. 另一棵树的子树
  • Git图形化工具【lazygit】
  • doris:异常数据处理
  • 网关登录校验
  • oracle比较一下统计信息差异吧
  • 新增文章功能
  • 谭浩强C语言程序设计(4) 8章(上)
  • deepseek R1 14b显存占用
  • 【Block总结】HWD,小波下采样,适用分类、分割、目标检测等任务|即插即用
  • 【Block总结】CAA捕获远程上下文信息,增强特征提取的能力|即插即用
  • 哈希表实现
  • 缓冲区和c库的简单实现
  • 性能优化2-删除无效引用
  • kobject、kset和ktype的关系
  • 论文阅读(七):贝叶斯因果表型网络解释遗传变异和生物学知识
  • python | OpenCV小记(一):cv2.imread(f) 读取图像操作(待更新)
  • 春晚舞台上的智能革命:中美人形机器人技术对比与发展
  • 日志2025.1.30
  • 【深度分析】DeepSeek 遭暴力破解,攻击 IP 均来自美国,造成影响有多大?有哪些好的防御措施?
  • Spring AI 与企业级应用架构的结合
  • 举例说明python单利模式的必要性
  • 数论问题80
  • floodfill算法(6题)
  • Node.js——模块化(模块的基本概念、模块化的规范、包与NPM)
  • 傅里叶分析之掐死教程
  • Zookeeper入门部署(单点与集群)