【发布时间】:2012-03-17 05:14:57
【问题描述】:
这是我在这里的第一篇文章,所以请放轻松,哈哈!好的,所以我对此很陌生,而且我已经研究这段代码好几天了,我似乎无法理解这个首选项的概念。我在这个网站上到处搜索,我相信这段代码应该可以根据我在这个网站和其他网站上查看的所有信息正常工作。我看了无数的例子,仍然不明白我做错了什么。
这是我的主要活动的 sn-p,它在用户启动应用程序时首次启动。我在选项菜单上有另一个活动,它计算当前日期和用户选择的日期之间的差异,我希望将结果整数传递到主活动并显示它的值。
public class SmokeStopperActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
public static final String PREFERENCE_FILENAME = "DaysPassed";
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SharedPreferences preference = getSharedPreferences("DaysPassed", MODE_PRIVATE);
int diffDays = preference.getInt("daysPassed", 0);
Toast.makeText(SmokeStopperActivity.this, ("Days" + diffDays),
Toast.LENGTH_LONG).show();;
这是我的第二个活动的 sn-p,它计算整数 diffDays 的值。
long diff = milis2 - milis1;
int diffDays = (int) (diff / (24 * 60 * 60 * 1000) + 30);
Toast.makeText(SetDate.this, (diffDays),
Toast.LENGTH_LONG).show();;
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor prefEditor1 = preference.edit();
prefEditor1.putInt("daysPassed", diffDays);
prefEditor1.commit();
当用户在第二个活动的前面部分按下按钮并且计算工作正常时,我让我的第二个活动发送 diffDays 整数的 Toast。第二个活动中的 Toast 显示我想要的整数。问题是当我使用这段代码时
SharedPreferences preference = getSharedPreferences("DaysPassed", MODE_PRIVATE);
int diffDays = preference.getInt("daysPassed", 0);
Toast.makeText(SmokeStopperActivity.this, ("Days" + diffDays),
Toast.LENGTH_LONG).show();;
在我的第一个活动中,它强制在打开时关闭。如果我从应用程序打开的第一个活动中删除此代码,这对我来说没有任何意义。我在这里检查的所有其他代码似乎都像我一样使用这个 sn-p 没有问题,所以我不明白我做错了什么。任何帮助将不胜感激。我有一种感觉,这是我一直忽略的愚蠢的东西。可能是因为看了好几个小时的代码,哈哈!
【问题讨论】:
标签: java android eclipse preferences shared