论坛首页 移动开发技术论坛

Activity之间的传值

浏览 13031 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-05-17   最后修改:2011-05-20
doloveme 写道

Android中Activity共享变量的另一方法:Application context:

多个Activity中经常使用同一变量时,使用Bundle则比较麻烦,每次调用Activity都需要设置一次。   如想在整个应用中使用,在java中一般是使用静态变量,而在android中有个更优雅的方式是使用Application context。  

 新建一个类,继承自Application

 

 

 class MyApp extends Application {
  private String myState;
  public String getState() {
  return myState;
  }
  public void setState(String s) {
  myState = s;
  }
  }

  

 

 

 

在AndroidManifest.xml的application加个name属性就可以了,如下面所示:

  android:name=".MyApp" android:icon="@drawable/icon"
  android:label="@string/app_name">

 

使用时:(这个是重点)

 

 

 class Blah extends Activity {

@Override
  public void onCreate(Bundle b){
  ...
  MyApp appState = ((MyApp)getApplicationContext());
  String state = appState.getState();
  ...
  }
  }
  class Blah extends
  Activity {
  @Override
  public void onCreate(Bundle b){
  ...
  MyApp appState = ((MyApp)getApplicationContext());
  String state = appState.getState();
  ...
  }
  }
 

 

 

 

当然搞个单例也可以啊,呵呵,以后研究

 

 

 

 

事实上 application就是一种他妈的单例

 

 

0 请登录后投票
   发表时间:2011-05-19  
LZ上个能运行的实例。。。
0 请登录后投票
   发表时间:2011-05-20  
amaker8 写道
LZ上个能运行的实例。。。


你这是肯定句,疑问句,还是反问句啊
0 请登录后投票
   发表时间:2011-05-20  
amaker8 写道
LZ上个能运行的实例。。。


哦,刚看懂,我一会上一个,呵呵
0 请登录后投票
   发表时间:2011-05-20  
现在好了,有代码了
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics