Android 的Application之一 ---- 在不同的类(Activity界面)中进行数据的操作
来源:互联网 发布:网络视频报警器 编辑:程序博客网 时间:2024/04/29 03:55
有时候我们需要在Activity之外的类中修改Activity中的数据或是UI, 或者是要在自定义的类中要修改其它类中的值。这时候就变的很麻烦!这时候我们就需要一个全局的容器,来存放要共享的数据,就像J2EE中的Session。 当然,Android设计者肯定也考虑到了这一点。进入正题-----> Application(注: 本节只简单介绍一下使用方法,相信天才的码农们举一反三)
使用方法:
第一、实现自己的Applicaiton
public class ApplicationContext extends Application { public static final int FLUSH_MAIN_ACTIVITY=1; private Handler main; public void setMainHandler(Handler handler){ main=handler; } public void flushMain(){ main.sendEmptyMessage(FLUSH_MAIN_ACTIVITY); } }
第二、在Activity中定义Handler ,并注册Handler
package com.sequel.text;import android.app.Activity;import android.app.Application;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Message;public class MainActivity extends Activity {private int count = 0;/** Called when the activity is first created. *///定义Handler, Handler flushHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {switch (msg.what) {case ApplicationContext.FLUSH_MAIN_ACTIVITY://在这可进行想要的操作operat();break;default:break;}super.handleMessage(msg);}};private ApplicationContext appC;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);appC = (ApplicationContext) getApplication();//注册HandlerappC.setMainHandler(flushHandler);try {Thread.sleep(2000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}startActivity(new Intent(MainActivity.this,SecondActivity.class));//启动另一个Activity}public void operat(){//.....System.out.println(count++);}}
第三、调用方法----在SecondActivity中进行操作
import android.app.Activity;import android.app.Application;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class SecondActivity extends Activity {/** Called when the activity is first created.*/private ApplicationContext appC;private Button button;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.second);button = (Button) findViewById(R.id.requestButton);button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//这就是调用方法appC.flushMain();}});appC = (ApplicationContext) getApplication();}}
第四、千万不要以为这就完事大吉了! 一定要在AndroidManifest.xml中注册你自己定义的Application
<application android:icon="@drawable/icon" android:label="@string/app_name" android:name=".ApplicationContext">
- Android 的Application之一 ---- 在不同的类(Activity界面)中进行数据的操作
- Android 的Application(可在不同的类中进行数据的操作)
- Android 的Application(可在不同的类中进行数据的操作)
- android中点击item时通过不同数据进行不同的操作
- Android 在 (Activity service application receiver) 中读取<meta-data>元素的数据
- Android中在Activity之间传递数据的另一种方法, 使用application context
- Android中在Activity之间传递数据的另一种方法, 使用application context
- Android之在不同的Activity之间传递数据
- 在adapter 中进行数据的操作
- Android中不同activity之间数据的共享
- Android中不同Activity之间的数据传递
- 在不同的Activity之间传递数据
- Android开发,在Activity中切换不同的Fragment
- JAVA在命令行界面中进行输入数据的方法
- android 欢迎界面的实现在一个activity中
- 在一个 application 中调用另一个 application 里的 Activity
- android不同Activity之间的数据共享
- Android:不同Activity之间的数据传递
- mysql,cmd下命令总结
- WebClient Headers
- 常用sql函数
- MVC 三层总结
- vc6在win764位下的问题
- Android 的Application之一 ---- 在不同的类(Activity界面)中进行数据的操作
- IEEE Transactions中加入头像
- windows下的多线程死锁的彻底解决办法
- 获取某个目录下 所有带.java 的文件
- 工作一年,回首下往事
- oracle备份
- 面对面的办公室——纪念艾伦•图灵百年诞辰
- mysql乱码问题
- (转)常用正则表达式