文档章节

android数据传递

别处有
 别处有
发布于 2016/03/20 22:28
字数 460
阅读 74
收藏 3
一:用Intent传递数据
     1:传递
      String mydata = edt_data.getText().toString();
      Intent intent = new Intent();
      intent.setClass(MainActivity.this,OtherActivity.class);
      intent.putExtra("data", mydata);
      startActivity(intent);
    可以传递对象,如String,Int,如果是自定义对象,该类要继承Serializable;
   2:获取数据
      Bundle bundle = getIntent().getExtras();
      String s=bundle.getString("data");
二:静态传参
    用一个静态类来保存所有的静态参数。
    如:StateObject类中
     private state String name;
     当我要存数据的时候
      StateObject.name = "ssss";
      在其他的Activity中可以引用
      String s = StateObject.name;
  注:当Activity销毁时要把用了的数据也销毁,避免数据混乱。
三:粘贴板(不做介绍):很少使用
四:用Applications传参
   (1):创建一个类(MyApplication),该类继承Application
    public class MyApplication extends Application {
      private String name; 
      public String getName() {
        return name;
     }
      public void setName(String name) {
        this.name = name;
     }
  (2):在androidManifest.xml中对Application进行配置,告诉app在程序执行前运行MyApplication而不是Application
       在Application标签中添加
           android:name="com.example.hello.MyApplication"//为所建立的类的路径
   (3):对Application对象的使用(存值)
             Intent intent = new Intent(MainActivity.this,OtherActivity.class);
           MyApplication app=    (MyApplication) getApplication();
           app.setName(“张三”);
           startActivity(intent);
  (4):对Application对象的使用(取值)
        
       MyApplication app= (MyApplication) getApplication();
       String data = app.getName();
       Toast.makeText(OtherActivity.this, data, Toast.LENGTH_SHORT).show();  

-------------------------------------------------------------------------------------------------------------------------
     
      对Application的优化
  (1):对MyApplication类进行单例化。(在没有继承Activity类的类是无法使用getApplication()方法的)
        private   static  MyApplication instance;
        public   static  MyApplication getInstance() {
        return instance;
    }
        
      public void onCreate() {
        super.onCreate();
        this.instance =this;
     }  
  (2): 采用HashMap<Key,Value>存储数据,避免变量过多。
    
    private HashMap<String,Object> map = new HashMap<String,Object>();
    public HashMap<String, Object> getMap() {
        return map;
    }  
(3):存数据
        MyApplication app=    MyApplication. getInstance ();
                app.getMap().put("1""你好");
                app.getMap().put("2""很好");
                app.getMap().put("3""还好");
                app.getMap().put("4""不好");
(4):取数据
       String a=  (String) app.getMap().get("1");  
       String a=  (String) app.getMap().get("2");  
       String a=  (String) app.getMap().get("3");  
       String a=  (String) app.getMap().get("4");  
(5):在该Activity使用完数据后,要及时清除不要的数据,避免数据混乱
       protected void onDestroy() {        
        super.onDestroy();
        app.getMap().remove("1");
        app.getMap().remove("2");
        app.getMap().remove("3");
        app.getMap().remove("4");                           
    }  







© 著作权归作者所有

别处有
粉丝 1
博文 8
码字总数 1789
作品 0
达川
程序员
私信 提问
分享17个老罗Android开发视频教程(免费下载)

分享17个老罗Android开发视频教程(免费下载) 第1集《老罗Android开发视频教程》android学习路线图介绍.avi 第2集《老罗Android开发视频教程》android系统框架的介绍.avi 第3集《老罗Andro...

邓剑彬
2012/12/01
2.4K
4
Flutter 49: 图解 Flutter 与 Android 原生交互

小菜上一篇简单学习了一下 Android 原生接入 Flutter Module,现在学习一下两者之间的数据交互; Flutter 与 Android/iOS 之间信息交互通过 Platform Channel 进行桥接;Flutter 定义了三种不...

阿策神奇
06/19
0
0
Android零基础入门第81节:Activity数据传递

在Android开发中,经常要在Activity之间传递数据。前面也学习了Activity和Intent相关基础,接下来一起来学习Activity的数据传递。 一、简介 通过前面的学习知道,Intent可以用来开启Activit...

鑫鱻
2017/10/23
39
0
Android应用开发—Application

What is Application Application和Activity,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个application对象,用来存储系统的一些信息。通常我们是不需要指定...

image_c
2018/05/28
0
0
界面开发组件Activity详解

Activity是Android中最核心的应用程序组件,是用于控制显示界面的组件。一个Activity就是一个类,该类继承了android.app.Activity,并需要重写onCreate方法,同时在AndroidManifest.xml中进行...

jz116
2012/12/16
441
1

没有更多内容

加载失败,请刷新页面

加载更多

centos7 linuxdeployqt qt5.13.1 打包程序

原文链接:https://www.cnblogs.com/linuxAndMcu/p/11016322.html 一、简介 linuxdeployqt 是Linux下的qt打包工具,可以将应用程序使用的资源(如库,图形和插件)复制到二进制运行文件所在的...

shzwork
9分钟前
1
0
IDEA 配置Springboot项目热部署

实现的方式概述 注意以下的热部署方式在IDEA是默认没有打开自动编译的,手动编译需要快捷键(Ctrl+Shift+F9),自动编译的修改配置如下:(注意刷新不要太快,会有1-2秒延迟) File-Settings-C...

小强的进阶之路
19分钟前
4
0
免费数据分析工具:secsoso

前段时间思考了理想数据分析平台,之后我们根据这个思路开发了spl语言并提供了一个数据分析平台,这个平台主要用在搜索ES,数据库索引中的数据。但后来发现对文件的事后处理也是个非常重要的...

赛克蓝德
21分钟前
2
0
暗黑2不能正常启动?带你轻松使用WIN10运行游戏

暗黑破坏神2这款游戏由于年代比较久远,所以设置启动这方面与现在的大部分游戏有很大差距,由于当初完美运行暗黑2是当年使用最多的XP系统,在使用现在大多数玩家使用的WIN7到WIN10系统常会出...

太空堡垒185
26分钟前
3
0
maven项目对象模型(二)

1.4.4.传递性依赖 一个传递性依赖就是一个依赖的依赖。如果project-a依赖于project-b,而后者接着依赖于project-c,那么project-c就是被认为是project-a的传递性依赖。如果project-c依赖于p...

万建宁
26分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部