java - 每天更新随机字符串

标签 java android date arraylist random

我有带有不同字符串的ArrayList。我想每天从这个 ArrayList 中选择一个随机字符串并将其显示在 TextView 中。我按照此链接中给出的说明进行操作:display a random string in textview once a day for java and android studio然而有些事情是错误的。 首先,我在 textView 中设置初始文本。

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mainscreen);
    TextView textview = (TextView) findViewById(R.id.firsttask);
    textview.setText("Z1");

然后我创建 2 个日期:CurrentDate 始终应显示给定时间。 dateTime 是存储在 SharedPreferences 中的日期。首先,CurrentDate 和 dateTime 是相同的。然后,第二天日期不相等,因此应更新文本并保存日期时间,以便日期相等。

    Calendar c= Calendar.getInstance();

    SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
    String currentDate= df.format(c.getTime());
    String dateTime = df.format(c.getTime());
    saveDate();
    loadDate();
    if(!(dateTime.equals(currentDate))){
        updateList1();
        saveDate();
    }

    public void saveDate (){
    SharedPreferences prefs =     getApplicationContext().getSharedPreferences(MY_PREFS_DATE,         Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = prefs.edit();
    editor.putString("date", dateTime);
    editor.apply();
    }
    public void loadDate (){
    SharedPreferences prefs =        getApplicationContext().getSharedPreferences(MY_PREFS_DATE, Context.MODE_PRIVATE);
    dateTime = prefs.getString("date","default value");
    }

    public void updateList1 (){
    ArrayList<String> task1 = new ArrayList<String>();
    task1.add("t1");
    task1.add("t2");
    task1.add("z3");
    task1.add("z4");
    Random r = new Random();
    task = task1.get(r.nextInt(task1.size()));
    TextView textview = (TextView) findViewById(R.id.firsttask);
    textview.setText(task);
}

此代码不起作用,因为一天后,文本未更新。它仍然显示“Z1”。我对编程很陌生,我将不胜感激任何帮助。

最佳答案

它不起作用,因为当您运行此代码时,您首先运行 saveDate(); 然后运行 ​​loadDate(); 这将使您的值相等。先加载然后保存,它应该按预期工作;

关于java - 每天更新随机字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40640401/

相关文章:

java - sqljdbc4.0 到 mssql-jdbc 6.2.1.jre7 迁移

java - 将 Maven 依赖项添加到 Eclipse

Java Swing : How to check what components are opened at runtime?

java - 用于测试的 Android Assets

java - 如何在android中获取rss feed

php - 平均日期间隔 php

swift - 在另一种语言中使用 dateFormatter

java - 如果互联网连接丢失,则停止应用程序中的计时器运行

java - 通过Java代码设置按钮位置?

java - 在 Scala 中将日期转换为时间戳