我得到一个随机数,但每次按此按钮都会改变,是否可以保存它们而不将其保存在数据库中?还是只有一种方法可以从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);
是否有一种方法只能运行一次此方法?
答案 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的号码。