刚接触android studio一个月,在平常练习实现app功能的时候不免要实现一个功能——不同activity之间的参数传递,我想在这个activity界面写的数据能显示到另一个activity界面上、在这个activity中的fragment界面上的信息显示在另一个fragment、甚至在这个activity中的fragment界面上的信息显示在另一个activity中的fragment。话不多说,直接上实现的代码。
一、不同Activity之间传递参数
这一步是最基础的,往往很多人会采取用Intent来传递参数。
1、传递参数:
// 在MainActivity中定义如下代码
//MainActivity是要传的,OtherActivity是要接收的
Intent intent = new Intent(MainActivity.this,OtherActivity.class);
//在Intent对象当中添加一个键值对
//key要记住,接收的时候要靠key来接收
intent.putExtra("key","value");
startActivity(intent);
2、接收参数
//取得从MainActivity当中传递过来的Intent对象
Intent intent = getIntent();
//从Intent当中根据key取得value
String value = intent.getStringExtra("key");
这样一个简单的参数传递就完成了,这里需要注意这个方法的采用会直接从这个activity跳转到另一个activity,那么如果我们不想跳转,但是要把这个参数传递过去呢?这个就要创建一个单独的类来帮我们实现。
二、实现任意的参数传递
DataTransmission(名字自拟),有了这个方法之后我们可以把要传递的参数输入进去,然后在你需要这些数据的时候再拿出来,这样我们就可以实现在任意的activity实现不跳转传递参数,甚至在任何的activity和fragment之间传参,以下是实现的代码:
package 包名;
public class DataTransmission {
private static DataTransmission instance;
private String data;
private DataTransmission() {}
public static DataTransmission getInstance() {
if (instance == null) {
instance = new DataTransmission();
}
return instance;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
接下来我们要传递参数的java代码里写
DataTransmission.getInstance().setData(str);//str是你想要传递的数据
接受参数的java代码里写
value = DataTransmission.getInstance().getData();//用一个字符串value来接收数据
这样我们就完成的想要完成的参数传递。欢迎大家指出错误,或者有更好的方法可以在评论区讨论,也欢迎大家互关私信我,可以有更好的交流。