在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);
}
}
分享到:
相关推荐
博文链接:https://aga.iteye.com/blog/209568
例子,源代码 博文链接:https://aga.iteye.com/blog/198212
四则运算例子四则运算例子四则运算例子四则运算例子四则运算例子
c# 结束进程例子 一则 揭开进程的面纱,其实获得进程列表利用net 框架已经变得很简单了
C 语言的一个四则运算例子 仅供参考 其中设置的加减乘除算法子程序。
struts2的一个简单小例子,模拟一个用户登陆的过程,如果用户名密码成功则跳转到main.jsp,否则跳转到登陆界面并显示提示信息。
dwr技术,怎样配置参照网上,这里提供前台页面和dwr配置文件。这里返回的是list数组和对象等,及怎样在页面进行展现。如果你没有用到spring ,则在dwr配置文件中creator="spring" 该为其他的生成方式。
jointjs 例子 左边组件框 选则 可以在右边进行流程组合 jointjs 组件框 例子 jointjs例子 流程组合
下面以一个简单的例子说明汇编源程序的上机过程。 假定要在显示器显示如下一行信息: I am a student! 那么,其汇编源程序的过程如下: STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS DATA SEGM0ENT BUF DB ...
2. 设计一个含有多个菜单项的菜单演示程序,然后再为这些菜单项设计相应的功能。 要求: (1)程序显示下列菜单选项: 1. 解一元二次方程 2. 石头、剪子、布游戏 3. 退出程序 选择1-3: (2)用户选择1,则求解一元...
struts最简单的一个例子,适用于初学者。 内容为:输入用户名密码,验证结果,如果输入用户名为“admin”,则跳转到一个成功页面,否则跳转至失败页面。
使用vs2008 工程创建一个对话框工程,点击按钮,会使用DialogBoxParam函数创建另一个对话框,如果在编辑框里输入的不是1111则这个对话框不退出,如果输入的是1111则这个对话框退出,
由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。
Kettle是一个开源的ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)项目,...Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
/* 例子1 //小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法? //数学排列问题解法 #include void main() {
python输入输出语句例子 Python是一种高级编程语言,它具有简单易学、代码简洁、可读性强等特点,因此在数据分析、人工智能、Web开发等领域得到了广泛应用。在Python中,输入输出语句是非常重要的基础语句,本文将...