如何在android中的不同类中使用共享的Preference值

时间:2013-01-29 15:26:21

标签: android sharedpreferences

主要活动中的

我有以下内容:

((TextView)findViewById(R.id.TextView02)).setText(getSharedPreferences("FearAlert", 1).getString("contactName", "Tap to select an Emergency Contact."));
    ((TextView)findViewById(R.id.TextView03)).setText(getSharedPreferences("FearAlert", 1).getString("contactNumber", ""));

现在我想在另一个Activty中使用contactNumber值来表示activity2 在Activty2中是:

 SmsManager.getDefault().sendTextMessage(??, null, "message",null, null, null);
return null;

我应该写什么代替?以上..请帮助..

4 个答案:

答案 0 :(得分:1)

在Java中,有......没关系,在编程语言中,有变量可以为变量赋值。像x = 1;然后使用可以使用x + x =?;并会给你2;

在这里你可以做到

SharedPreferences sPrefs=getSharedPreferences("FearAlert", 1);
TextView tv=(TextView)findViewById(R.id.TextView02);
String YOUR_INTRESTING_STRING=sPrefs.getString("contactName", "Tap to select an Emergency Contact.");

并将其传递给另一个Activity;你可以把它放在一个Bundle

Intent i = new Intent(getApplicationContext(), YOUR_ANOTHER_ACTIVITY.class);
i.putExtra("name_of_value",YOUR_INTRESTING_STRING);
startActivity(i);


在你的AnotherActivity中将其翻转
Bundle extras = getIntent().getExtras();
String value = extras.getString("name_of_value");

答案 1 :(得分:0)

首选项通常是名称值对。它们可以作为“共享首选项”存储在应用程序中的各种活动中(注意,它不能跨进程共享)。或者它可能是需要存储特定于活动的东西(这里不讨论)。

上下文对象允许您通过方法

检索SharedPreferences
Context.getSharedPreferences(). 


getSharedPreferences("FearAlert", 1).getString("contactNumber", "");

OR 

 SharedPreferences myPrefs = this.getSharedPreferences("FearAlert", 1);
        String contactNumber = myPrefs.getString(contactNumber, "nothing");

答案 2 :(得分:0)

您可以在应用中随处访问您的偏好设置,例如使用以下方法:

/**
 * Get a string preference by its key from the apps preferences file
 * 
 * @param key of preference
 * @return value of preference
 */
public String getStringPreference(String key) {
    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    return pref.getString(key, "");
}

只需设置密钥,例如" CONTACTNAME"作为参数。首选项管理器需要通过getApplicationContext()获取应用程序上下文。

答案 3 :(得分:0)

假设您已正确创建SharedPreferences:

SharedPreferences settings = getSharedPreferences("MY_APP", MODE_PRIVATE);

您可以通过以下方式检索方法中的偏好设置:

SmsManager.getDefault().sendTextMessage(settings.getString("contactNumber"), null, "message", null, null, null);

假设您已使用“MY_APP”共享偏好标记进行设置。

settings.edit().putString("contactNumber", "XXX-XXX-XXXX").commit();