android Activity见数据传递的三种方式
1、使用剪切板方式clipboardManager
Activity A 中的内容传值到Activity B
A中代码:
- String name = "shujuchudi";
- ClipboardManager cm = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
- cm.setText();
- Intent in = new Intent(MainActivity.this, Other.class);
- startActivity(in);
B中代码:
- ClipboardManager cm = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
- cm.getText();
2、使用intent传值
Activity A 中的内容传值到Activity B
A中代码:
- //生成Intent对象(包含了ctivity间传的Data,param);相当于一个请求
- Intent intent=new Intent();
- //键值对
- intent.putExtra("extra", "archie2010");
- //从此ctivity传到另一Activity
- intent.setClass(OneActivity.this, OtherActivity.class);
- //启动另一个Activity
- OneActivity.this.startActivity(intent);
B中代码:
- //获得从上一个Activity传来的intent对象
- Intent intent=getIntent();
- String stringValue=intent.getStringExtra("extra");
- myTextView=(TextView) findViewById(R.id.myTextView);
- //设置TextView显示的值(引用String的配置文件)
- //myTextView.setText(R.string.other);
- //从上个Activity传过来的值
- myTextView.setText(stringValue);
当然除了使用intent类的putEtra()方法,还可以使用Bundle类来传值
A中代码:
- Intent intent=new Intent();
- intent.setClass(OneActivity.this, OtherActivity.class);
- Bundle bundle = new Bundle();
- bundle.putString("标记", "放入数据");
- startActivity(intent);
B中代码:
- Intent intent=getIntent();
- Bundle bundle = intent.getEtra();
- String s = bundle.getString("标记");
3、使用Application
在Android中,有一个名为Application的类,我们可以在Activity中使用getApplication(),方法来获得,它是代表我们的应用程序的类,使用它可以获得当前应用的主题,资源文件中的内容等,这个类更灵活的一个特性就是可以被我们继承,来添加我们自己的全局属性。
使用方法为继承Application,定义所需类型变量,定义对应的get 和 put 方法即可

浙公网安备 33010602011771号