Android——动态广播实例

本文通过一个实例展示了如何在Android中使用动态广播。主要涉及两个Activity,一个发送改变背景颜色的广播,另一个接收广播并响应改变自身背景。具体实现包括在Activity中设置Dialog样式,使用RadioGroup选择颜色,并进行广播的发送与接收操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过一个Activity发出改变背景颜色的广播,另一个Activity接收广播来改变自己的背景。

效果图:这里写图片描述

这里写图片描述

小的类似于dialog其实是一个Activity,只是这个Activity的主题样式改为了Dialog的形

式。

在Activity的标签中,有

android:theme="@android:style/Theme.Dialog"

便可将这个Activity变为dialog样式的Activity。

里面只有RadioGroup单选框,将选中的颜色发出广播。

mainactivity:

package com.example.broadcasttiaozhuan;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.RelativeLayout;

public class MainActivity extends Activity {
    private RelativeLayout layout;
    private BroadcastReceiver receiver=new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            int color=intent.getIntExtra("color", Color.RED);

            layout.setBackgroundColor(color);
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        layout=(RelativeLayout) findViewById(R.id.layout);
        IntentFilter filter=new IntentFilter();
        filter.addAction("ll"); 
        registerReceiver(receiver, filter);
    }
    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        unregisterReceiver(receiver);
    }

    public void myclick(View V)
    {
        startActivity(new Intent(this,OtherActivity.class));
    }
}

OtherActivity:

package com.example.broadcasttiaozhuan;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;

public class OtherActivity extends Activity implements OnCheckedChangeListener {
    private RadioGroup rg;
    private int color=Color.RED;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.item);
        rg=(RadioGroup) findViewById(R.id.rg);
        rg.setOnCheckedChangeListener(this);
    }
    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        // TODO Auto-generated method stub
        switch (checkedId) {
        case R.id.rb_red:
                color=Color.RED;
            break;
        case R.id.rb_green:
            color=Color.GREEN;
            break;
        case R.id.rb_blue:
            color=Color.BLUE;
            break;

        default:
            break;
        }

        Intent intent=new Intent();
        intent.setAction("ll");
        intent.putExtra("color", color);
        sendBroadcast(intent);  
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值