如何保存随机值

时间:2019-07-19 10:36:06

标签: java android

我得到一个随机数,但每次按此按钮都会改变,是否可以保存它们而不将其保存在数据库中?还是只有一种方法可以从Firebase检索数据?因为我是通过随机数获取数据的。

例如:

int number = rand.nextInt(10);

输出:

number = 7

再次运行该应用程序:

number = 5

我使用数字从数据库中检索数据:

ref = FirebaseDatabase.getInstance().getReference().child(number);

ValueEventListener listeners = new ValueEventListener() {
    @Override public void onDataChange(DataSnapshot dataSnapshot) { // Get Post object and use the values to update the UI
        User abc = dataSnapshot.getValue(User.class);

    }

    @Override public void onCancelled(DatabaseError databaseError) {
        // Getting Post failed, log a message

        // ...
    }
};
ref.addValueEventListener(listeners);

是否有一种方法只能运行一次此方法?

3 个答案:

答案 0 :(得分:0)

您可以使用SharedPreferences存储生成值的布尔标志。然后,您将在您的generate方法中检查该标志。

看起来像这样

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putBoolean("MyFlag", true);
editor.commit();

像这样得到它

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
boolean flag= sharedPref.getBoolean("MyFlag", false); // default value is false

有关更多信息,您可以查看android developer guide

答案 1 :(得分:0)

您可以将其添加到arraylist中。之后,您可以将整个数组列表保存到SharedPreferences中。

引用this链接

答案 2 :(得分:0)

无论何时生成新的随机数,都将其保存在SharedPreferences中。

尝试一下。

        SharedPreferences sharedPref = getActivity().getPreferences("myPreference",Context.MODE_PRIVATE);
        int number = sharedPref.getInt("number",rand.nextInt(10));
        SharedPreferences.Editor ed = sharedPref.edit();
        editor.putInt("number", number);
        editor.apply();

它的作用是,当您第一次打开应用程序时,如果有保存的号码,它将查看“共享首选项”。如果没有,它将生成新的随机数并将其保存在“共享首选项”中。下次打开它时,您会收到来自SP的号码。