`

Android 向Activity传递数据的几种方法

 
阅读更多
1. 使用clipborad 传递
写入数据
button_clipboard.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view) {
                ClipboardManager clipboardManager=(ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
                String context =  "manualy";
                clipboardManager.setText(context);
                Intent intent = new Intent(Main.this, OtherActivity.class);
                startActivity(intent);
            }
        });

读出数据
            ClipboardManager clipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
            String content = (String)clipboardManager.getText();


2.使用Application传递服务级别的数据(只要没有调用onDestroy()服务级别的数据就不会消失)
MyApp.java
import android.app.Application;

public class MyApp extends Application{
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        setName("Peter");
    }
}


改写AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="mymobile.xinxin.mymobile" >

    <application
        android:name=".MyApp" <!--添加对应的Application-->
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".Main"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".OtherActivity"></activity>
    </application>

</manifest>



写入数据
        MyApp myApp;
        button_clipboard.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view) {
                myApp=(MyApp)getApplication();
                myApp.setName("Jack");
                Intent intent = new Intent(Main.this, OtherActivity.class);
                startActivity(intent);
            }
        });


读出数据
MyApp myApp;
myApp = (MyApp)getApplication();
String name = myApp.getName()



3.使用Intent传递数据
写入数据
        button_clipboard.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Main.this, OtherActivity.class);
                intent.putExtra("Address","China");
                startActivity(intent);
            }
        });


读出数据
Intent intent =  getIntent();
String address = intent.getStringExtra("Address")


4.使用静态变量传递数据
写入数据
        button.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Main.this, OtherActivity.class);
                OtherActivity.name="Tom";
                OtherActivity.age=33;
                startActivity(intent);
            }
        });


读出数据
public class OtherActivity extends Activity{

    private TextView textView;
    public static String name;
    public static int age;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.other);
        textView = (TextView)this.findViewById(R.id.msg);
        textView.setText("name: " + name +"\nage: " +age );
    }
}

分享到:
评论

相关推荐

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

    Android-Activity之间数据传递的多种方式. 在不同模块(如Activity)间经常会有各种各样的数据需要相互传递,我把常用的几种 方法都收集到了一起。它们各有利弊,有各自己的应用场景。

    Android五种数据传递方法汇总

    Android开发中,在不同模块(如Activity)间经常会有各种各样的数据需要相互传递,我把常用的几种 方法都收集到了一起。它们各有利弊,有各自的应用场景。 我现在把它们集中到一个例子中展示,在例子中每一个按纽代表...

    Android Activity之间的数据传递方法总结

    前言 在Activity间传递的数据一般比较简单,但是有时候实际开发中也会传一些比较复杂的数据,本节一起来学习更多...下面将通过几个小栗子分别介绍一下这几种方法。 1.1、基本数据类型传递 String 不是基本数据类型,

    Android参数传递方法汇总

    参见 http://blog.csdn.net/xcl168 Android开发中,在不同模块(如Activity)间经常会有各种各样的数据需要相互传递,我把常用的几种 方法都收集到了一起。它们各有利弊,有各自己的应用场景。 我现在把它们集中到...

    详解Android Service与Activity之间通信的几种方式

    在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务,所以在我们实际开发中,就会常常遇到Activity与Service之间的通信,我们一般在Activity中启动后台Service,通过Intent来启动,...

    详解Android中Intent传递对象给Activity的方法

    主要介绍了Android中Intent传递对象给Activity的方法,文章中对Activity的生命周期等知识先作了简要的介绍,需要的朋友可以参考下

    Intent在Activity之间传值的几种方式

    该资源主要包含了Android中Intent中如何传值的几种方法: 1:基本数据类型,包含了Java八种基本数据类型和CharSequece文本 2:八种数据类新对应数组和CharSequece文本数组 3:Bundle传值 4:ArrayList集合 5:...

    Android intent之间复杂参数传递方法详解

    本文详细讲述了Android intent之间复杂参数传递方法。分享给大家供大家参考,具体如下: Intent是Activity与Activity之间,Activity与Service之间传递参数的介质,而这两种通常实现的是Java基本对象类型和String的...

    Android中Service与Activity之间通信的几种方式

    在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务,所以在我们实际开发中,就会常常遇到Activity与Service之间的通信,我们一般在Activity中启动后台Service,通过Intent来启动,...

    Android系列之Intent传递对象的几种实例方法

    在Android中intent传递对象主要有2种方式分别是,Bundle.putSerializable(Key,Object)和Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    Android移动应用开发实验指导书.docx

    (2)掌握Intent的几种常用的属性。 (3)Android系统内置Intent的使用。 (4)了解Activity的生命周期 实验软、硬件环境 硬件:PC电脑一台; 配置:winxp或win7系统,内存大于4G,硬盘250G及以上 JDK1.7 、Eclipse...

    Android移动应用开发实验指导书.docx.docx

    (2)掌握Intent的几种常用的属性。 (3)Android系统内置Intent的使用。 (4)了解Activity的生命周期 实验软、硬件环境 硬件:PC电脑一台; 配置:winxp或win7系统,内存大于4G,硬盘250G及以上 JDK1.7 、Eclipse...

    android初学者必须掌握的Activity状态的四大知识点(必读)

    这几天一直都在捣鼓android的知识点,兴趣班的老师,讲课太过深奥,天(想到什么就见什么,后后面完全不想听),最后自己找资料总结了在Android学习中很重要的一个组件Activity,那就开始吧! 第一:掌握Activity的四...

    android 面试2

     答:在系统回收或者用户调用finish方法,都会销毁Activity,此时会调用onDestroy方法,利用onDestroy方法保存Activity状态  3. 如何将一个Activity设置成窗口的样式。  答:在AndriodMinifest.xml文件中配置...

    详解Android中Intent的使用方法

    1. 启动Activity:可以将Intent对象传递给startActivity()方法或startActivityForResult()方法以启动一个Activity,该Intent对象包含了要启动的Activity的信息及其他必要的数据。 2. 启动Service:可以将Intent对象...

    Android代码-ABridge

    跨进程常见的几种通信方式:Bundle通过Intent传递数据,文件共享,ContentProvider,基于Binder的AIDL和Messenger以及Socket。 三、IPC是what? 也许有些小伙伴还不是很清楚IPC概念,这里我简单的概述一下。 IPC是 ...

    android中aidl的基本应用

    描述 :整理了下android中的aidl, 项目中主要是用作于Activity和Service之间进行跨进程的通信和调用,定义了几种基本类型的接口,其中涵盖了自定义参数类型的传递。 注意: 解压后有两个android程序,一个client端 ...

    Android Handler多线程详解

    Android–多线程之Handler ...本篇博客主要介绍Handler是如何发送与处理线程上传递来的消息,并讲解 Message的几种传递数据的方式,最后均会以小Demo来演示。 Handler  Handler, 它直接继承自Object,一

Global site tag (gtag.js) - Google Analytics