【发布时间】:2017-03-31 03:20:53
【问题描述】:
我有不同字符串的 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 是相同的。然后,第二天日期不相等,因此应更新文本并保存 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”。我在编程方面很新,我将不胜感激。
【问题讨论】:
标签: java android date arraylist random