安卓初学,多个窗体Activity之间如何互相访问变量?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓初学,多个窗体Activity之间如何互相访问变量?相关的知识,希望对你有一定的参考价值。
方案有很多,其中最常用的有两种,一种是参数传递法,一种是全局变量法
第一种,在切换activity的时候通过intent把变量传递过去,举个简单的例子
有两个activity,分别是FirstActivity.java 和 SecondActivity.java,我们想传递name和age两个参数从FirstActivity到SecondActivity
首先在FirstActivity中,启动SecondActivity的时候添加如下发送数据的代码:
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);Bundle bundle = new Bundle();
bundle.putString("name", "Tom");
bundle.putInt("age", 4); //把要传递的参数打包进bundle,这里name和age是参数名,“Tom”和4是对应的参数值
intent.putExtras(bundle); //把打包好的bundle放入intent
startActivityForResult(intent, 10); // 携带bundle跳转到secondActivty
在SecondActivity的onCreate中用如下代码就可以获得刚才传递过来的参数了
String name = intent.getStringExtra("name");
第二种,使用全局变量,我一般用这个方法,简洁明了,举个例子
首先你需要建立一个类来继承Application类,比如
public class MyApplication extends Applicationpublic String gName = “Tom”;
public int gAge = 4;
然后修改androidManifest.xml,把默认Application的修改为我们的MyApplication
<applicationandroid:name="MyApplication"
.... >
<activity
...>
</activity>
</application>
这样,程序启动的时候就会从MyApplication类启动而不是默认的Application类了
下面我们就可以在各个Activity里边来随意使用MyApplication中我们定义的全局变量gName和gAge了,实例代码如下:比如我们在MainActivity.java中
private MyApplication mAppInstance;
public void onCreate(Bundle savedInstanceState)
mAppInstance = (MyApplication)getApplication();
String name = mAppInstance.gName; // 获取全局变量
int age = mAppInstance.gAge;
mAppInstance.gName = “Jack”; //修改全局变量
参考技术A JAVA是没有全局变量的,连对象变量都没有全局的,
有时连对象名是什么都不能知道的。但类的定义是
全局性的。
解决的简单有效办法就是利用类的静态变量解决全局问题:
比如安卓程序有两幅窗口,主窗口类名 MainActivity
第二个窗口是SecondActivity类名是知道的,但对象名
是不知道的。
只要在主类中加一个 静态变量就可!
public class MainActivity extends Activity
static String rs; // 静态变量将是全局性的,访问办法: 类名.静态变量名
static int gloalV; // 全局性的 ................
在另一个类中 SecondActivity 就可以访问它个全局变量了:
MainActivity.rs="全局变量,可以任意访问了!!!";
int v=MainActivity.gloalV; // 变量值取过来!
用类的静态变量做全局变量有两个好处:
1.知道类名就可以任意全局访问静态变量,不用知道类的实例名(也称对象名);
2.不管类有多少对象,静态变量只有一份,不需实例就可访问;
如何杀掉 android 如何跳转到 main activity
该方法需要两个必要条件条件一: 一个自己管理Activity 的列表, 网上很多用 ArryList 来存储acitivity
条件二: 需要一段,重新开启堆栈,跳转到 Home界面,并且 用liux的杀掉进程的方法
你的采纳是我前进的动力,
记得好评和采纳,答题不易,互相帮助,
手机提问的朋友在客户端右上角评价点(满意)即可.
如果你认可我的回答,请及时点击(采纳为满意回答)按钮!! 参考技术A 意思是跳转到main ativity的同时并关掉其他的activity吗?
以上是关于安卓初学,多个窗体Activity之间如何互相访问变量?的主要内容,如果未能解决你的问题,请参考以下文章
如何杀掉 android 如何跳转到 main activity
安卓开发 在两个Activity界面之间互相切换 我设置的是back1按钮返回到第一个LoginActivity(主界面)