`
01jiangwei01
  • 浏览: 541750 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

安卓课程一 android使用全局变量传递数据

 
阅读更多

  android中Application是用来保存全局变量的,在package创建的时候就存在了,到所有的activity都被destroy掉之后才会被释放掉。所以当我们需要全局变量的时候只要在application中去实现,通过调用Context的getApplicationContext或者Activity的getApplication方法来获得一个Application对象,就可以设置或读取全局变量的值。

  启动Application时,系统会创建一个PID,即进程ID,所有的Activity就会在此进程上运行。那么我们在Application创建的时候初始化全局变量,同一个应用的所有Activity都可以取到这些全局变量的值,换句话说,我们在某一个Activity中改变了这些全局变量的值,那么在同一个应用的其他Activity中值就会改变。

实例演试:如果把输入里的内容设置为全局变量,那么有下面两种情况。



 

具体实现方法如下:

一. 新建共享的全局变量

新建一个共享变量的类WirelessApp,需要继承Application

package com.wirelessqa.testintent;
import android.app.Application;
/**

 * 继承application,设置全局变量

 * @author bixiaopeng 2013-2-18 上午11:32:19

 */

public class WirelessApp extends Application {

private String username;


public String getUsername() {
returnusername;
}


public void setUsername(String username) {
this.username = username;
}


}

 

二.配置AndroidMainifest.xml 

在AndroidMainifest.xml中声明一下全局变量的类,这时Android就会建立一个全局可用的实例

在Application属性中设置android:name=".WirelessApp"

三.调用全局变量

可以在其它任何地方使用Content.getApplicationConext()来获取这个实例,再来获取全局变量

 

package com.wirelessqa.testintent;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;
public class MainActivity extends Activity {
private EditText edit = null;
private Button button = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit = (EditText)findViewById(R.id.edit);
button = (Button)findViewById(R.id.btn_submit);
button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
String result = edit.getText().toString();
//获得应用程序实例
WirelessApp app = (WirelessApp)getApplicationContext();
//给全局变量赋值
app.setUsername(result);
//启动另一个activity
Intent intent = new Intent(MainActivity.this, ResultActivity.class);
startActivity(intent);
}
});
}
}

 

 四.调用全局变量的值

 

 

package com.wirelessqa.testintent;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

/**
 * 显示结果的Activity
 * 
 * @author bixiaopeng 2013-2-18 上午11:29:50
 */
public class ResultActivity extends Activity {

    private TextView text = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);
        //获得应用程序实例
        WirelessApp app = (WirelessApp) getApplicationContext();
        String result = app.getUsername();//取值
        text = (TextView) findViewById(R.id.txt_result);
        text.setText(result);
    }

}

 

  • 大小: 66.3 KB
分享到:
评论

相关推荐

    Android通过全局变量传递数据

    在Activity之间数据传递中还有一种比较实用的方式 就是全局对象 实用J2EE的读者来说都知道Java Web的四个作用域 这四个作用域从小到大分别是Page Request Session和Application 其中Application域在应用程序的任何...

    Eclipse编写的Android全局变量应用实例

    总结来说,Eclipse V4.2.0作为Android开发的老牌工具,虽然目前已被Android Studio取代,但它仍然是学习和理解Android全局变量应用的良好平台。通过合理使用全局变量,开发者可以更高效地管理应用数据,但同时也需要...

    使用Application做全局变量

    在Android开发中,全局变量的使用常常是为了在不同的Activity之间共享数据。`Application`类是Android框架提供的一种机制,允许开发者创建一个与应用程序生命周期绑定的单例对象,从而实现全局变量的效果。本篇文章...

    android使用意图传递数据

    这是一个ppt文档,在里面详细的帮我们介绍了在Activity之间传递数据,通过全局变量传递数据。

    通过全局对象传递数据

    总的来说,通过全局对象传递数据是Android应用开发中的一种常见做法,但需要谨慎使用,避免滥用可能导致的问题。合理地利用全局对象,可以提高代码的复用性和可维护性。在实际开发中,应根据具体需求选择最适合的...

    Android开发中Intent的四种数据传递方式

    4种最常用的Intent传递方式,这4种方式如下: 1、通过Intent传递数据 2、通过静态变量传递数据 3、通过剪切板传递数据 4、通过全局变量传递数据

    Android-Activity之间数据传递的多种方式

    Intent是Android系统中用于启动组件(如Activity)的一种消息对象,同时也可以用来在组件间传递数据。Intent的数据传递有两种类型:显式和隐式。 1. 显式Intent:通过指定目标Activity的类名,可以精确地启动某个...

    Android编程中全局变量问题分析

    在Android编程中,全局变量的使用常常涉及到应用的生命周期管理和数据持久化。本文将深入探讨在Android中如何正确地处理全局变量以及遇到的一些常见问题。 首先,全局变量通常用于在整个应用程序范围内共享数据。在...

    Android PopupWindow与Activity之间的数据传递.zip

    3. **静态变量**:创建全局静态变量,可以方便地在PopupWindow和Activity之间共享数据。但是,这种方法不推荐在大型项目中使用,因为它可能导致数据同步问题和内存泄漏。 4. **BroadcastReceiver**:注册一个...

    详解Android中Application设置全局变量以及传值

    在Android开发中,全局变量的使用常常涉及到应用的多个组件之间数据共享,而Application类恰好提供了一个全局初始化和存储变量的平台。本文将详细讲解如何在Android中利用Application类设置全局变量并进行值传递。 ...

    Android例子源码Activity间的数据传递

    7. **静态变量与全局对象**: 虽然不推荐,但在某些情况下,可以使用静态变量或全局对象来间接传递数据。这种方法可能会导致数据泄露和难以调试的问题,因此应谨慎使用。 8. **事件总线**:对于更复杂的场景,如多个...

    android Application全局传值替代Intent

    在Android应用开发中,Intent是传递数据非常常见的方式,它用于启动Activity、Service或BroadcastReceiver,并可以在它们之间传递数据。然而,当面临大量的数据需要在应用程序的不同组件间共享时,Intent可能就显得...

    Android中的全局变量与局部变量使用小结

    总结起来,Android开发中应谨慎使用全局变量,尽可能限制其作用范围,优先考虑局部变量和方法参数来传递数据。同时,结合使用ViewHolder和局部变量,优化Adapter的性能,避免因全局变量导致的问题。正确地管理和使用...

    1.Android入门介绍.zip

    1.1 android系统介绍,1.2 android系统框架的介绍,1.3 如何搭建android开发环境,1.4 android生命周期的介绍,1.5 android使用全局变量传递数据,1.6 android使用剪切板传递数据,1.7 意图传递数据的第一种方式,...

    Android笔记 Application对象的使用-数据传递以及内存泄漏问题

    相较于Activity,`Application`的生命周期更长,全局唯一,因此常被用于全局变量的存储和初始化工作。 1. 数据传递: - **静态成员变量**:可以在`Application`类中定义静态变量,这些变量在整个应用程序的生命...

    android studio 源码AndroidViewModel(让ViewModel访问全局资源);视图绑定;

    要创建一个`AndroidViewModel`,你需要继承`AndroidViewModel`类,并传递`Application`实例到构造函数中。然后,你可以在`AndroidViewModel`的实例中存储和管理需要跨活动或Fragment共享的数据。 ```java public ...

    老罗android视频开发源码和ppt经典

    1.5 android使用全局变量传递数据 1.6 android使用剪切板传递数据 1.7 意图传递数据的第一种方式 1.8 android使用静态变量传递数据 1.9 意图返回结果 二、Android常用布局介绍 2.1 android常用布局属性的介绍 2.2 ...

    activity间数据的传递列表显示

    Intent是Android系统中用于启动另一个Activity或服务的类,它也可以用来传递数据。通过调用Intent的putExtra()方法,我们可以将各种类型的数据(如字符串、整数、布尔值等)添加到Intent中。例如: ```java Intent ...

    注册界面(Activity的应用和数据传递)

    4. **静态成员变量或Application对象**:虽然不推荐,但在某些场景下,如需要全局共享数据,可以考虑使用。 5. **使用ContentProvider**:对于大规模数据的跨应用传递,可以利用`ContentProvider`。 6. **使用...

    浅谈Android中关于静态变量(static)的使用问题

    综上所述,虽然静态变量在Java编程中提供了一种方便的共享数据的方式,但在Android开发中,由于其生命周期与进程紧密相关,使用时必须谨慎,以防止出现不可预测的行为和潜在的内存管理问题。合理地设计和使用静态...

Global site tag (gtag.js) - Google Analytics