Java 如何从其他活动访问数据?
我有两项活动。一个是主活动,另一个是设置活动。在“设置”活动中,我正在设置颜色变量 我想在主活动中将其作为默认颜色访问,该颜色在设置活动中设置 我试图将color声明为静态变量,并在另一个活动中访问它。但问题是,如果我直接打开主活动,我不会得到颜色,因为它不会在“设置”活动中设置 如何在“设置”活动中保存此变量?我想将颜色保存为“设置”活动中事件的默认颜色 多谢各位 编辑: 我尝试使用共享的首选项,但仍然没有在主活动中获得默认颜色 在设置中:Java 如何从其他活动访问数据?,java,android,variables,android-activity,Java,Android,Variables,Android Activity,我有两项活动。一个是主活动,另一个是设置活动。在“设置”活动中,我正在设置颜色变量 我想在主活动中将其作为默认颜色访问,该颜色在设置活动中设置 我试图将color声明为静态变量,并在另一个活动中访问它。但问题是,如果我直接打开主活动,我不会得到颜色,因为它不会在“设置”活动中设置 如何在“设置”活动中保存此变量?我想将颜色保存为“设置”活动中事件的默认颜色 多谢各位 编辑: 我尝试使用共享的首选项,但仍然没有在主活动中获得默认颜色 在设置中: ((GradientDrawable)select
((GradientDrawable)selectColor.getBackground()).setColor(Color.BLUE);
mColor = Color.BLUE;
SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt("color",mColor);
editor.commit();
在主要活动中:
SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
mColor = sharedPref.getInt("color",0);
既然你说的是“设置”活动,我假设你有多个设置,你想让它们保持粘性(你想在以后运行应用程序时记住它们)?如果是这样,请使用共享首选项存储您想要的颜色,并在主要活动的onResume中读取首选项并相应更改颜色
如果不想让它们粘在一起,请调用startActivityForResult启动“设置”活动,并返回设置作为结果。然后,主活动应该覆盖onActivityResult以获得结果。既然您是从设置活动中说的,我假设您有多个设置,并且希望它们保持粘性(您希望在以后运行应用程序时记住它们)?如果是这样,请使用共享首选项存储您想要的颜色,并在主要活动的onResume中读取首选项并相应更改颜色
如果不想让它们粘在一起,请调用startActivityForResult启动“设置”活动,并返回设置作为结果。然后,主活动应覆盖onActivityResult以获得结果。在共享首选项中保存颜色十六进制代码或颜色名称在共享首选项中保存颜色十六进制代码或颜色名称您有两个选项: 1-正如Gabe Sechan所说,您应该使用
startActivityForResult
startActivityForResult(intent, 2);// Activity is started with requestCode 2
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// check if the request code is same as what is passed here it is 2
if(requestCode==2) {
String message=data.getStringExtra("MESSAGE");
textView1.setText(message);
}
}
2-更改颜色时,可以使用回调方法处理侦听器
他们俩也在和我一起工作 您有两种选择: 1-正如Gabe Sechan所说,您应该使用
startActivityForResult
startActivityForResult(intent, 2);// Activity is started with requestCode 2
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// check if the request code is same as what is passed here it is 2
if(requestCode==2) {
String message=data.getStringExtra("MESSAGE");
textView1.setText(message);
}
}
2-更改颜色时,可以使用回调方法处理侦听器
他们俩也在和我一起工作 但是,是否需要先在“设置”中设置颜色,然后再转到其他活动?我在“设置”中设置了默认颜色。我不能在不进入“设置”的情况下访问此设置吗?@Gabe Sechan阅读“设置”时,可以提供默认设置。如果设置尚未写入,read函数将返回此值。因此,您可以只为该函数提供默认值,并在设置活动写入该函数之前一直使用该函数。但是,是否需要先在设置中设置颜色,然后转到其他活动?我在“设置”中设置了默认颜色。我不能在不进入“设置”的情况下访问此设置吗?@Gabe Sechan阅读“设置”时,可以提供默认设置。如果设置尚未写入,read函数将返回此值。因此,您可以只为该函数提供默认值,并在设置活动写入该函数之前一直使用该函数。