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号