2017-05-07 119 views
0

我有一个应用程序,我可以创建一些课程(英语,法语,...)。这些课程有一个开始和结束的日期。我将选中的日期作为字符串存储在我的数据库中。从数据库中排序数据以选择正确的列表查看android

我想知道用3个选项卡(过去/当前/未来)创建一个TabbedActivity。

过去将包含所有日期结束前的日期在当前日期的课程。当前将包含当前日期介于两个日期的开始和结束之间的所有课程。 Futur将包含开始日期在当前日期之后的所有课程。

但是,由于我将它们存储为字符串值,这有可能吗?如果是的话,你能解释一下吗?

我可以发布一些代码,如果你需要(我现在不发布代码,因为idk,如果它可能我要问)。

谢谢你们!

@Update与方法,帮助

public Cursor getCoursFuture() 
{ 
    Calendar c = Calendar.getInstance(); 
    DateFormat df = new SimpleDateFormat("dd-MM-yyyy"); 
    Date date = c.getTime(); 
    String currentDate = df.format(date); 

    String query ="select ID as _id, branche_cours, designation from "+TABLE_COURS+" where date('"+COLONNE_DATEPREMIER+"') > '"+currentDate+"'"; 
    Open(); 
    Cursor cursor = db.rawQuery(query,null); 
    return cursor; 
} 

我SimpleCursorAdapter

lvCours =(ListView)findViewById(R.id.ListCours); 
    final Cursor cursor = dbhelper.getCoursFuture(); 
    String[] from = { "branche_cours", "designation" }; 
    int[] to = { R.id.text_branche_cours, R.id.text_designation }; 
    lvCours.setAdapter(adapter); 
    adapter = new SimpleCursorAdapter(this, R.layout.list_row, cursor, from, to, 0); 
    lvCours.setAdapter(adapter); 
    adapter.notifyDataSetChanged(); 
+0

只需将您的日期存储为UTC时间戳即可。将日期存储为字符串只会导致不必要的麻烦 – Jahnold

+0

Ii如何做到这一点? – Dom

回答

0

它可以通过日期

比方说你的当前日期是currentDate排序;

您可以按使用该查询选择未来的教训

select * from Table where date(dateColumn) > currentDate

更换><=其他查询。

编辑: 当你调用c.getTime()时,你会得到一个日期对象。您需要将其格式化为一个字符串。

Date date = c.getTime(); 
DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); 
String currentDate = df.format(date); 
+0

但这些查询,我写他们在我的DatabaseHelper或在tabbedactivity? – Dom

+0

在数据库帮手当然 –

+0

如何将这些字符串转换为DateTime值?你能告诉我一个ListView的方法的例子(让我们说过去)= – Dom

相关问题