`
Aga
  • 浏览: 217769 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

例子一则

阅读更多
在main的onStart中注册一个BroadCastReceiver用来监听ACTION_CHANGING事件,在事件发生之后,修改textview的text。在onStop之中卸载改该listener,这样当第二个activity是透明的风格的时候main可以通过listener改变样式。
package org.cxz.lifeCycle;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

public class MainActivity extends Activity {

	public static final String ACTION_CHANGING = "org.cxz.lifeCycle.ChangeBackGround";

	private static final int MENU_OPTION_NEXT = 1;

	private ScreenChangingReceiver receiver = new ScreenChangingReceiver();

	private TextView tv = null;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main_activity);
		tv = (TextView) findViewById(R.id.TextView01);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// TODO Auto-generated method stub
		super.onCreateOptionsMenu(menu);
		menu.add(0, MENU_OPTION_NEXT, 0, R.string.next_activity);
		return true;
	}

	@Override
	public boolean onMenuItemSelected(int featureId, MenuItem item) {
		super.onMenuItemSelected(featureId, item);
		switch (item.getItemId()) {
		case MENU_OPTION_NEXT:
			fireTransparentActivity();
		}
		return true;
	}

	private void fireTransparentActivity() {
		Intent i = new Intent(this, TransparentActivity.class);
		startActivity(i);
	}

	@Override
	protected void onStart() {
		super.onStart();
		IntentFilter filter = new IntentFilter(ACTION_CHANGING);
		registerReceiver(receiver, filter);
	}

	@Override
	protected void onStop() {
		super.onStop();
		unregisterReceiver(receiver);
	}

	private class ScreenChangingReceiver extends BroadcastReceiver {

		private static final String NEW_TEXT = "new Text";

		@Override
		public void onReceive(Context context, Intent intent) {
			// TODO Auto-generated method stub
			runOnUiThread(new Runnable() {

				@Override
				public void run() {
					// TODO Auto-generated method stub
					tv.setText(NEW_TEXT);
				}

			});
		}

	}

}

第二个透明的activity但点击menu button的时候改变上一个activity的外观。
package org.cxz.lifeCycle;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class TransparentActivity extends Activity {
	private static final int MENU_OPTION_CHANGE = 1; 
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.transparent_activity);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// TODO Auto-generated method stub
		super.onCreateOptionsMenu(menu);
		menu.add(0, MENU_OPTION_CHANGE, 0, R.string.change_bg);
		return true;
	}

	@Override
	public boolean onMenuItemSelected(int featureId, MenuItem item) {
		super.onMenuItemSelected(featureId, item);
		switch (item.getItemId()) {
		case MENU_OPTION_CHANGE:
			changeMainBackGround();
		}
		return true;
	}

	private void changeMainBackGround() {
		Intent i = new Intent(MainActivity.ACTION_CHANGING);
		// startActivity(i);
		// not start an activity
		sendBroadcast(i);
	}
}
1
1
分享到:
评论

相关推荐

    jmx例子一则

    博文链接:https://aga.iteye.com/blog/209568

    XMLBean例子一则

    例子,源代码 博文链接:https://aga.iteye.com/blog/198212

    html的一个小例子

    这个"html的一个小例子"可能是为了帮助初学者理解HTML的基本结构和元素。在这个小例子中,我们可能有两个文件:`wq.html` 和 `img`。 `wq.html` 文件很可能是HTML源代码文件。在HTML文件中,我们通常会看到以下基本...

    jsp 写的 一个小例子

    【标题】"jsp 写的 一个小例子"揭示了这个压缩包内容是关于使用Java Server Pages(JSP)技术开发的一个Web应用程序实例。JSP是一种动态网页开发技术,它允许开发者在HTML或XML文档中嵌入Java代码,从而实现服务器端...

    HTML5 Canvas的一个例子

    在这个例子中,可能的实现是首先定义一个多边形,然后根据外半径画出一个圆形边框,接着利用偏移半径对多边形进行位移操作,使得整个图形产生动态视觉效果。学习HTML5 Canvas不仅可以提升网页的交互性和可视化,还能...

    一个Struts的简单例子

    这个“一个Struts的简单例子”提供了一个基础的用户登录应用,非常适合初学者了解和学习Struts框架的基本用法。下面将详细解释这个例子中的关键知识点。 1. **MVC设计模式**: MVC模式是Web应用程序开发中常见的...

    很简单的一个AJAX例子

    这个"很简单的一个AJAX例子"的标题和描述表明,我们将会探讨一个基础的AJAX应用实例,它可能包含了一个简单的JavaScript代码示例,用于向服务器发送请求并接收响应,以实现页面的异步更新。 在Web开发中,AJAX的...

    一个简单的tcp例子

    在这个“一个简单的tcp例子”中,我们将探讨如何使用socket编程来实现TCP通信的基本原理,即客户端发送数据到服务器,服务器接收并回应数据。 首先,TCP连接是建立在三次握手的基础上的。当客户端想要与服务器建立...

    一个COM的小例子!

    在"COMDemo"中,可能会有一个演示如何创建和使用系统相关类的例子,比如创建一个注册表键,读写值,或者创建和管理线程。同时,它也可能展示了如何加载和使用资源文件,例如从资源文件中获取图标用于显示,或者从...

    策略模式的一个例子

    在这个例子中,我们可能有一个业务场景,其中的决策过程基于不同的条件进行调整。例如,一个电子商务网站可能有不同的促销策略,如满减、折扣、买一赠一等。这些策略可以根据时间和用户类型动态切换。 "分层"的概念...

    C#例子 源代码

    委托是类型安全的函数指针,而事件则是实现观察者模式的一种方式。在UI编程中,它们尤为重要。 6. **泛型**:泛型提供了一种方式,可以在不指定特定类型的情况下编写代码,从而提高了代码的重用性和效率。在集合类...

    multisim例子

    例如,一个简单的串联电路例子会展示电流如何在电阻之间分配,而并联电路例子则会演示电压如何在各支路中保持一致。 二、模拟与数字电路 Multisim不仅适用于模拟电路,也支持数字逻辑电路的设计和仿真。例子可能...

    jsf第一个例子 jsf架包 jsf实例

    在“jsf第一个例子”中,我们通常会遇到以下关键概念: 1. **JSF生命周期**:JSF有六个主要阶段,包括恢复视图、应用请求值、处理验证、更新模型值、调用应用业务逻辑以及渲染响应。开发者可以在这些阶段插入自定义...

    一个简的osg例子 入门 例子(含代码)

    在主循环中,`viewer.done()`检查是否应结束程序,而`viewer.frame()`则执行一次完整的渲染帧。 程序还提供了多种交互方式,包括鼠标和键盘操作。鼠标的不同按键组合可以实现视图的旋转、平移和缩放,而键盘上的...

    一个基于LUCENE搜索引擎项目例子

    索引构建则是将处理后的文本数据构建成倒排索引,这是一种高效检索的数据结构。最后,搜索是通过用户输入的查询与索引进行匹配,返回最相关的文档。 在项目开始时,你需要引入Lucene的相关依赖。这个例子中的`...

    SSM整合的例子

    MyBatis则是一个轻量级的持久层框架,它允许开发者用SQL语句直接操作数据库,而无需传统的JDBC模板代码。MyBatis通过Mapper接口和XML或注解形式的映射文件,将Java方法与SQL语句对应起来,实现了数据访问的解耦。 ...

    vhdl100个例子

    这个“vhdl100个例子”的压缩包为初学者提供了一个丰富的学习资源,涵盖了VHDL的基础应用和一些常见的数字逻辑设计。 在VHDL中,我们主要通过实体(Entity)、结构体(Architecture)和库(Library)来描述硬件。...

    springboot例子

    这个“springboot例子”是一个详细的示例项目,它可以帮助初学者理解SpringBoot的工作流程和基本配置原理。 SpringBoot的核心特性包括自动配置、内嵌式Web服务器(如Tomcat或Jetty)、健康检查、Actuator监控、...

Global site tag (gtag.js) - Google Analytics