如何在所有活动中使用值?

时间:2017-08-29 08:48:18

标签: android

例如:我有一个字符串值“A”。我有活动:activity_a,activity_b,activity_C。

我可以在所有活动中使用值“A”吗?如果是,如何实现这一目标? 而不是通过Intent或将数据发送到另一个活动。

我很抱歉我的英语不流利。

我将登录活动中的令牌值移动到主要活动。 我使用了Intent并移动了令牌登录活动。这是我的登录活动代码。

let textColor = process.env.NODE_ENV === 'production' ? 'rgb(0,0,0)' :  chromatism.contrastRatio('#ffea00').cssrgb;

但是在主Activity中,我试图像这样声明静态。

StringRequest stringRequest = new StringRequest(Request.Method.POST, serverURL,
                                    new Response.Listener<String>() {
                                        @Override
                                        public void onResponse(String response) {
                                            try{
                                                JSONArray jsonArray = new JSONArray(response);

                                                JSONObject json_code = jsonArray.getJSONObject(0);
                                                JSONObject json_token = jsonArray.getJSONObject(1);

                                                String code = json_code.getString("code");
                                                String token = json_token.getString("token");

                                                Intent myIntent = new Intent(loginActivity.this, mainActivity.class);
                                                myIntent.putExtra("token", token);
                                                startActivity(myIntent);
                                                finish();

                                                overridePendingTransition(R.xml.madefadein, R.xml.splashfadeout);

                                            }catch(JSONException e){
                                                e.printStackTrace();
                                            }
                                        }
                                    }, new Response.ErrorListener() {
                                @Override
                                public void onErrorResponse(VolleyError error) {
                                    switch(error.networkResponse.statusCode)
                                    {
                                        case 409:
                                            Toast.makeText(loginActivity.this, error.networkResponse.toString(), Toast.LENGTH_SHORT).show();
                                            break;
                                    }

                                }

但它不起作用。

1 个答案:

答案 0 :(得分:3)

1.在您的活动中将您的字符串声明为 public static String strTmp="A";,而不是在您的项目中使用任何位置

像这样

 String strTmp = yourActivity.str; 

<强> 2。创建一个像这样的新类

public class ServiceClass {  
    public static String strTmp="Data";
}

现在您可以在项目中的任何位置访问此字符串,例如

String mystr= ServiceClass.strTmp;

3.如果您想使用硬字符串而不是将字符串存储在 res / values / string.xml

<resources>
  <string name="app_name">PatternView</string>
</resources>

比你可以这样使用

String str = getResources().getString(R.string.app_name);

<强> 4。将其保存在像此

的SharedPreferences中
  

在SharedPreferences中保存数据的代码,如下所示

SharedPreferences myPref;
SharedPreferences.Editor prefEditor;

myPref = getSharedPreferences("TOKENNAME", MODE_PRIVATE);
prefEditor = myPref.edit();

prefEditor.putString("TOKEN", "your token");
prefEditor.apply();

从SharedPreferences检索数据的代码

SharedPreferences myPref;
myPref = getSharedPreferences("TOKENNAME",
            MODE_PRIVATE);

    String name = myPref.getString("TOKEN", "");