今天无意间想起来,总结一下Android传递数据的方式,(个人认为)一般分为四种:Intent传值、静态变量、剪切板、全局对象等。
1.Intent传值:
通过Intent.putExtra方法来设置要传递的数据,通过get方法来获得要得到的数据
Intent intent = new Intent();
intent.putExtra("extra", "这是通过Intent传值");
intent.setClass(FirstActivity.this, SecondActivity.class);
startActivity(intent);
2.静态变量传值:
将类成员定义成public static,直接可以用来传递数据(个人不推荐)
public static String FROM_FIRST_ACTIVITY = "这是通过静态变量传值";
intent = new Intent();
intent.putExtra("extra", FROM_FIRST_ACTIVITY);
intent.setClass(FirstActivity.this, SecondActivity.class);
startActivity(intent);
3.剪切板传值:
利用Android系统提供的剪切板存取数据,代码如下:
intent = new Intent();
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setText("这是通过剪切板传值");
intent.setClass(FirstActivity.this, SecondActivity.class);
startActivity(intent);
4.全局对象传值:
利用Appliction,自定义一个继承自android.app.Application的类,并在其中定义任何类型的变量和方法。
(1)首先新建一个继承自android.app.Application的类:
public class MyApp extends Application {
private String skipString;
public String getSkipString() {
return skipString;
}
public void setSkipString(String skipString) {
this.skipString = skipString;
}
@Override
public void onCreate() {
super.onCreate();
}
}
(2)在Activity跳转时:
private MyApp myApp;
myApp = (MyApp) this.getApplication();
intent = new Intent();
myApp.setSkipString("通过Appliction传值");
intent.setClass(FirstActivity.this, SecondActivity.class);
startActivity(intent);