Java 如何从其他活动访问数据?

Java 如何从其他活动访问数据?,java,android,variables,android-activity,Java,Android,Variables,Android Activity,我有两项活动。一个是主活动,另一个是设置活动。在“设置”活动中,我正在设置颜色变量 我想在主活动中将其作为默认颜色访问,该颜色在设置活动中设置 我试图将color声明为静态变量,并在另一个活动中访问它。但问题是,如果我直接打开主活动,我不会得到颜色,因为它不会在“设置”活动中设置 如何在“设置”活动中保存此变量?我想将颜色保存为“设置”活动中事件的默认颜色 多谢各位 编辑: 我尝试使用共享的首选项,但仍然没有在主活动中获得默认颜色 在设置中: ((GradientDrawable)select

我有两项活动。一个是主活动,另一个是设置活动。在“设置”活动中,我正在设置颜色变量

我想在主活动中将其作为默认颜色访问,该颜色在设置活动中设置

我试图将color声明为静态变量,并在另一个活动中访问它。但问题是,如果我直接打开主活动,我不会得到颜色,因为它不会在“设置”活动中设置

如何在“设置”活动中保存此变量?我想将颜色保存为“设置”活动中事件的默认颜色

多谢各位

编辑:

我尝试使用共享的首选项,但仍然没有在主活动中获得默认颜色

在设置中:

 ((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函数将返回此值。因此,您可以只为该函数提供默认值,并在设置活动写入该函数之前一直使用该函数。