共享偏好不起作用(2个活动之间)

时间:2016-03-27 00:04:21

标签: android

我有2项活动。在“A”活动中,我有一个按钮。当用户单击此按钮时,在“B”活动中,长数据将发生变化。如果用户没有点击按钮长数据更改标准“61000”长数据。当我尝试关闭我的应用程序时......

活动代码;

SharedPreferences paylasim = getSharedPreferences("sure", MODE_PRIVATE);
              SharedPreferences.Editor editor = paylasim.edit();
              editor.putLong("veri", 31000);
              editor.commit();

B活动代码;

SharedPreferences paylasim = getSharedPreferences("sure", MODE_PRIVATE); 
long kalansure = paylasim.getLong("veri", 61000);

2 个答案:

答案 0 :(得分:2)

虽然我不太明白你在问什么,但我想我之前遇到过类似情况。

首先,让我解释一下你的问题,

  

我尝试在ActivityA中保存一个long值,我想通过单击按钮在Activity B中检索它。但是当我点击按钮时,应用程序崩溃了。

当我第一次使用if(o.children.length > 0){ o.children.forEach((o)=>{ var t = traverse.down(o,a); if (t) return t; // return the first element that matches. There might be more but we're ignoring them }); // none were found return false; } 跨活动存储数据时,它甚至都没有保存数据!然后我找到了SharedPreferences类,所以我使用了那个类,整个过程都有效。看看这是否适合你。

将内容放入SP,

PreferenceManager

获取东西,

PreferenceManager.getDefaultSharedPreferences(this).edit()
    .putLong("someKey", someValue).apply();

其中PreferenceManager.getDefaultSharedPreferences(this) .getLong("somekey", someDefaultValue); this

但是,如果您只想将某些数据从活动A传递到活动B,那么您实际上不需要将数据存储在Context中。(我认为这是您实际想要的你需要在你创建的intent对象上调用SharedPreferences来导航到Activity B:

putExtra

然后,在活动B中,重新获取内容:

Intent i = ...;
i.putExtra("someKey", someValue);
startActivity(i);

答案 1 :(得分:0)

如果你已经使用了" veri"用于存储其他类型数据的键(例如Integer)然后您将获得强制转换异常,您的应用将关闭。确保情况并非如此。

除此之外,你应该发布log cat输出。否则任何人说的只是一个猜测