Java 如何从SQLite对android上的结果进行排序?
我需要显示多个数据库表来分隔文本视图 因此,我需要从一个表中提取所有“约会”,并对它们进行排序,以便在主活动(如txtmasday、txtmasday、txtmasday)上的单独文本视图中显示 数据库设计用于存储当天以及其他详细信息:Java 如何从SQLite对android上的结果进行排序?,java,android,sqlite,Java,Android,Sqlite,我需要显示多个数据库表来分隔文本视图 因此,我需要从一个表中提取所有“约会”,并对它们进行排序,以便在主活动(如txtmasday、txtmasday、txtmasday)上的单独文本视图中显示 数据库设计用于存储当天以及其他详细信息: private static final String DATABASE_CREATE = "create table " + TABLE_AP + "(" + COLUMN_ID + " integer primary key autoincr
private static final String DATABASE_CREATE =
"create table " + TABLE_AP + "(" + COLUMN_ID + " integer primary key autoincrement, "
+ COLUMN_DAY + " text not null, "
+ COLUMN_TIME + " text not null, "
+ COLUMN_DURATION + " text not null, "
+ COLUMN_DESCRIPTION + " text not null);";
以下是我试图通过MainActivity调用它的方式:
(我也将使用onCreate调用它)
以及它们的XML/字符串:
<string name="RadioMon">Mon</string>
<string name="RadioTue">Tue</string>
<string name="RadioWed">Wed</string>
<string name="RadioThu">Thur</string>
<string name="RadioFri">Fri</string>
Mon
星期二
结婚
星期四
星期五
在您的数据模型中,您应该有一个类来处理约会,因此当您从数据库中检索所有约会时,只需根据约会类的创建方式,按约会[i].Day或类似方式对其进行筛选。您不需要为每个数据库显式创建不同的DB选择
public void onResume (){
APData = new AppointmentDataSource(this);
APData.open();
List<Appointment> appointments = APData.retrieveAllAppointments();
APData.close();
TextView tvMonday = (TextView)findViewById(R.id.tvMonday);
TextView tvTuesday = (TextView)findViewById(R.id.tvTuesday);
... (all your days textViews).
for(Iterator<Appointment> i = appointments.iterator(); i.hasNext();){
Appointment item = i.next();
if(item.Day.equals("Monday") tvMonday.append(item.ToString());
//same for the rest of your textViews
}
public void onResume(){
APData=新任命数据源(此);
APData.open();
列表约会=APData.retrieveAllAppoints();
APData.close();
TextView tvMonday=(TextView)findViewById(R.id.tvMonday);
text视图tvdesday=(text视图)findViewById(R.id.tvdesday);
…(您所有的日子都是文本视图)。
for(迭代器i=appoints.Iterator();i.hasNext();){
预约项目=i.下一步();
if(item.Day.equals(“星期一”)tvmanial.append(item.ToString());
//其他文本视图也是如此
}
应该是这样的。我不明白您要排序什么?请更好地解释SQLiteDatabase查询方法的最后一个参数包含“orderBy”SQL函数的参数。这里有更多信息:啊,对不起,Tenhouse,我想按天对它们进行排序,并将时间/持续时间/描述放在正确的textview day下,但是我如何才能使用“OrderBy day”将行分隔为各个天的textview。因此,我认为唯一可以做到的方法是创建多个RetrieveAllApp Pointments,只需将其更改为“RetrieveMondayAppoints”/“RetrieveTuesdayAppoints”等,然后过滤掉所有不是周一、周二或w/eSo的日子,我必须像约会一样对其进行排序[i].day,然后从RetrieveAllAppoints方法更改TextView的文本值?因为我只能返回1个值或1个列表,并且不确定返回后如何对其排序。据我所知,您从DB返回所有约会。并且
类型约会的对象应具有属性Appointment、 天
。是的,我是说你可以试着按约会[I]对它进行排序。天
,然后决定在布局上将每个对象发送到哪里。嘿,伙计,你能给我一些示例代码以及我需要将其放置在哪里吗?无法运行抱歉。检查更新,我发布了一段代码,希望它能帮助你。
createButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
findRadioGroup = (RadioGroup) findViewById(R.id.radioDay);
int selectedId = findRadioGroup.getCheckedRadioButtonId();
radioButton = (RadioButton) findViewById(selectedId);
String day=radioButton.getText().toString();
String time=txtTime.getText().toString();
String duration=txtDuration.getText().toString();
String description=txtDescription.getText().toString();
APData.insert(day, time, duration, description);
APData.close();
finish();
}
});
<string name="RadioMon">Mon</string>
<string name="RadioTue">Tue</string>
<string name="RadioWed">Wed</string>
<string name="RadioThu">Thur</string>
<string name="RadioFri">Fri</string>
public void onResume (){
APData = new AppointmentDataSource(this);
APData.open();
List<Appointment> appointments = APData.retrieveAllAppointments();
APData.close();
TextView tvMonday = (TextView)findViewById(R.id.tvMonday);
TextView tvTuesday = (TextView)findViewById(R.id.tvTuesday);
... (all your days textViews).
for(Iterator<Appointment> i = appointments.iterator(); i.hasNext();){
Appointment item = i.next();
if(item.Day.equals("Monday") tvMonday.append(item.ToString());
//same for the rest of your textViews
}