如何使用sharedPreferences日期显示发送下一个Activity

时间:2013-10-25 14:24:58

标签: android sharedpreferences

我需要将数据Date Display发送到下一个Activity并保留该数据

private void updateDisplay()
{      
SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(ShowdatanameActivity.this);
SharedPreferences.Editor editor = app_preferences.edit();

   mDateDisplay.setText(new StringBuilder().append(mMonth + 1).append("-").append(mDay).append("-").append(mYear).append(" "));   
   editor.putString("key1", mDateDisplay);
   editor.commit();
   Intent myIntent = new Intent(ShowdatanameActivity.this,Showdata_result_resume.class);
   startActivity(myIntent);
}

2 个答案:

答案 0 :(得分:0)

确实,您可以从应用程序的每个位置访问Data / Calendar对象。但如果你坚持:

您已将字符串添加到" key1"下的SharedPreferences;所以在其他活动中你必须打电话:

SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences("KEY_FOR_YOUR_DATA",ShowdatanameActivity.this);
String data = app_preferences.getString("key1","");

因此,当您调用SharedPreferences时,您还需要密钥。它是某种"数据库版本",你可以在那里写任何东西(我用的是例如PREFS-KEYv1,当我需要新的时候我会增加到v2)。并且不要在任何地方使用相同的密钥。

您可以用来将String发送到其他活动的另一种方法是通过意图。

intent.putExtra("key1",yourStringVariable);
在setContent之后的onCreate中的

和Showdata_result_resume你可以得到它:

String data = intent.getExtras().getString("key1");

答案 1 :(得分:0)

使用这样的代码使首选项代码可以在各种应用程序和类之间移植。

从片段中我得到了像这样的sharedpref。请注意我是如何在资源中命名的首选项,并使用getActivity来获取首选项。

    sharedPref = getActivity().getSharedPreferences(
            getString(R.string.preferences), Context.MODE_PRIVATE);

从主要活动中我得到了像这样的sharedpref。请注意我是如何在资源中命名的。

sharedPref = getSharedPreferences(getString(R.string.preferences),
            Context.MODE_PRIVATE);

应用程序中所有类共享的资源。

<string name="preferences">com.gosylvester.hilbilyfashliegt.prefrences</string> 
<string name="about_firstrun">com.gosylvester.hilbilyfashliegt.firstrunabout</string>

现在使用R字符串资源从任何类中获取数据。

_Checked = sharedPref.getBoolean(getString(R.string.about_firstrun),
            false);

祝你好运