在Android中存储整数

时间:2016-04-27 21:12:06

标签: java android integer

所以我有3节课。我正在尝试并最终在值下创建一个Integers.xml文件,以尝试保存我的值。它有效,但我无法找到如何改变它。我知道如何使用它来抓住它。

res.getInteger(R.integer.int);

我似乎无法找到如何改变它,我开始得出你不能做到的结论。我想知道在哪里需要存储值,所以当我切换到我的其他类时,整数不会全部重置。我很抱歉,因为Android中有大量的存储数据,但我无法实现他们告诉我的代码。如果只有一种简单的方法可以确保它只记得5个整数,那么我可以完成我的应用程序。

4 个答案:

答案 0 :(得分:1)

存储在integers.xml中的值是常量,因此它们无法更改。存储5个整数的快速方法是使用SharedPreferences并使用自己的唯一键存储每个整数。 例如,在活动中:

SharedPreference prefs = getSharedPreferences("com.example.myapp", MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("Integer1", 234);
editor.putInt("Integer2", 748);
editor.putInt("Integer3", 747);
editor.putInt("Integer4", 42);
editor.putInt("Integer5", 463);

要获取值:

SharedPreference prefs = getSharedPreferences("com.example.myapp", MODE_PRIVATE);
int integer1 = prefs.getInt("Integer1", 0);
int integer2 = prefs.getInt("Integer2", 0);
int integer3 = prefs.getInt("Integer3", 0);
int integer4 = prefs.getInt("Integer4", 0);
int integer5 = prefs.getInt("Integer5", 0);

答案 1 :(得分:1)

以下是读取和写入SharedPrefs的基本代码。请注意,此方法将数据本地保存在用户的设备上:

写:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();

读:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);

来源:Official Google Documentation

答案 2 :(得分:0)

如果您在关闭应用程序后不想存储这些整数,则无法将它们置于静态列表中,如

public static List<Integer> integerList = new ArrayList<>();

如果您想永久存储这些整数,可以使用SharedPreferences

或者您可以使用像this

这样的SQLite数据库

答案 3 :(得分:0)

你是对的,你无法编辑resources个文件,因为它们只运行一次。
如果您想存储关闭后留在应用中的值,可以使用SharedPreferences 如果要在运行时存储值,可以创建一个包含getterssetters的类:

public class Values {

  int value1;
  int value2;

  public int getValue2() {
    return value2;
  }

  public void setValue2(int value2) {
    this.value2 = value2;
  }

  public int getValue1() {
    return value1;
  }

  public void setValue1(int value1) {
    this.value1 = value1;
  }
}

在任何活动中,您都可以设置并获得这样的值:

Values.setValue1(yourValue1);
Values.getValue1();