【问题标题】:Android - Sharedpreferences Collect DataAndroid - Sharedpreferences 收集数据
【发布时间】:2017-08-01 15:06:29
【问题描述】:

我在打开应用程序时生成一个随机数,并使用 Sharedpreferences 保存该数字。这是我的代码:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Random r = new Random();
        int number = r.nextInt(100);

        SharedPreferences randomnumber = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        SharedPreferences.Editor editor = randomnumber.edit();
        editor.putInt("intValue",number);
        editor.commit();
    }
}

我可以在打开应用程序时收集旧号码和新号码吗?

【问题讨论】:

  • randomnumber 上使用getInt 来获取您的数据
  • 我想收集每条记录中的新旧数据@Pavneet_Singh
  • 向我们展示您到底想要什么的示例
  • 我认为您最好使用 SQLite 表,因为您可以添加新数字而不是覆盖现有值 - developer.android.com/training/basics/data-storage/…

标签: android sharedpreferences


【解决方案1】:

您正在用新值覆盖旧值

editor.putInt("intValue",number);

这就是为什么您总是会看到它的一个价值。您可以使用不同的字段名称或使用数组,例如 How can I store an integer array in SharedPreferences?

【讨论】:

    【解决方案2】:

    在设置新值之前获取旧值..

        Random r = new Random();
        int number = r.nextInt(100);
    
        SharedPreferences randomnumber = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    
        String old = randomnumber.getString('intValue');  // old value
    
        SharedPreferences.Editor editor = randomnumber.edit();
        editor.putInt("intValue",number); // set new value
        editor.apply();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-26
      • 1970-01-01
      相关资源
      最近更新 更多