我需要将数据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);
}
您可以从应用程序的每个位置访问数据/日历对象。但如果你坚持:
你已经把你的字符串放在"key1"下的共享首选项中,所以在其他活动中你必须调用:
SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences("KEY_FOR_YOUR_DATA",ShowdatanameActivity.this);
String data = app_preferences.getString("key1","");
因此,当您调用共享首选项时,您还需要它们的密钥。它是某种"数据库版本",您可以在那里编写任何内容(例如,我使用PREFS-KEYv1,当我需要新的版本时,我会递增到v2)。并且不要在任何地方使用相同的密钥,这是不好的做法。
可用于将 String 发送到其他活动的另一种方法是通过意图。
intent.putExtra("key1",yourStringVariable);
Showdata_result_resume在创建后设置内容中,您可以通过以下方式获取它:
String data = intent.getExtras().getString("key1");
使用这样的代码使首选项代码在各种应用程序和类之间可移植。
从一个片段中,我得到了这样的共享偏好。 请注意,我如何在资源中命名首选项,并使用 getActivity 来获取首选项。
sharedPref = getActivity().getSharedPreferences(
getString(R.string.preferences), Context.MODE_PRIVATE);
从主要活动中,我得到了这样的共享偏好。 请注意我如何在资源中命名首选项。
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);
祝你好运