Activity之间传递数据的四种方式

由于Android SDK的限制,不能在调用Activity时直接访问其他Activity对象。因此不能像普通对象之间传递数据一样通过构造方法和类成员来传递数据。所以Android SDK提供特有的传递数据的几种方式:


1.Intent对象(传输数据仅限简单数据和实现序列话的对象)         

         传递string类型数据:

         Intent intent= new Intent(this,MainActivity.class);

         intent.putExtra("str","message");

         startActivity(intent);


         接受string类型数据:

         String str=getIntent().getExtras().getString("str");


2.静态变量具体实现步骤

       将需要共享的对象或者数据声明为静态,可以传递任何类型的数据。

         原理其实很简单:就是在接收端的Avtivity里面设置static的变量,在发送端这边改变静态变量的值,然后启动意图


3.剪切板
           可以利用Android自带的剪切板功能传送数据:

           传递数据:

           Intent intent=new Intent(this,MainActivity.class);

           ClipboardManager cliper=(ClipboardManager)getSystemServer(Context.CLIPBOARD_SERVER);

           cliper.setText("message");

           startActivity(intent);


           接收数据:

           ClipboardManager cliper=(ClipboardManager)getSystemServer(Context.CLIPBOARD_SERVER);

           String str=cliper.getText().toString(); 


4.全局对象

          (1)为每个应用程序定义一个全局的对象,由系统负责创建对象,使用全局对象需要继承Android.app.Application类,可以在该类中定义任何方法。

           package com.example.transmitdata;
           import android.app.Application;
   public class mAPP extends Application(){
                 public String str;
                 public Data data;

           }

         (2)在AndroidManifest.xml文件中定义该类
          <?xml version="1.0" encoding="utf-8"?>
          <manifest xmlns:android ="http://schemas.andoid.com/apk/res/android"
            package="com.example.transmitdata"
          <application android:name=".mAPP "
                       ......
                     />

                />


          (3)可以在程序任意位置获取mAPP对象。

          mAPP mapp=(mAPP)getApplicationContext();



                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值