Java 从SQLite筛选记录以显示在列表中
我在SQLite数据库中有一些数据,我想基于小逻辑在Java 从SQLite筛选记录以显示在列表中,java,android,sqlite,Java,Android,Sqlite,我在SQLite数据库中有一些数据,我想基于小逻辑在列表中显示这些数据 我的表中有三个字段 first field : id second field : title third field : type 其中,类型可以是:每月或每年 这是我的密码: // Generate real data for each item public List<ReminderItem> generateData(int count) { ArrayList<
列表中显示这些数据
我的表中有三个字段
first field : id
second field : title
third field : type
其中,类型可以是:每月
或每年
这是我的密码:
// Generate real data for each item
public List<ReminderItem> generateData(int count) {
ArrayList<ReminderItem> items = new ArrayList<>();
// Get all reminders from the database
List<Reminder> reminders = rb.getAllReminders();
// Initialize lists
List<String> Titles = new ArrayList<>();
List<String> Type = new ArrayList<>();
List<Integer> IDList= new ArrayList<>();
// Add details of all reminders in their respective lists
for (Reminder r : reminders) {
Titles.add(r.getTitle());
Type.add(r.getType());
IDList.add(r.getID());
}
return items;
}
//为每个项目生成真实数据
公共列表生成数据(整数计数){
ArrayList items=新建ArrayList();
//从数据库中获取所有提醒
列表提醒=rb.getAllMembers();
//初始化列表
列表标题=新的ArrayList();
列表类型=新建ArrayList();
List IDList=new ArrayList();
//在各自的列表中添加所有提醒的详细信息
对于提醒(r:提醒){
Titles.add(r.getTitle());
Type.add(r.getType());
IDList.add(r.getID());
}
退货项目;
}
在这种情况下,我需要你们的帮助,正如你们仍然可以看到的那样,我正在将数据库中的每一条记录显示到列表中,无论它属于哪个类型
现在,我只想在列表中显示记录
,它只属于类型“每月”
那我到底要做什么?如何在列表中仅显示“每月”类型的记录
我有一个字符串
变量,即strType=“Monthly”当您从sqlite数据库中选择时,可以在其中添加过滤器
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_A + " WHERE " +
COLUMN_TYPE + "=?", new String[]{ arg0 }); // arg0 = "Monthly"
这将提高性能,而不是在加载后过滤列表当您从sqlite db中选择时,您可以在那里添加过滤器
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_A + " WHERE " +
COLUMN_TYPE + "=?", new String[]{ arg0 }); // arg0 = "Monthly"
这将提高您的性能,而不是在加载后筛选列表您有两种选择来执行此操作
首先,通过执行下面的sql语句,直接从数据库中获取提醒类型为“每月”的记录
第二种是,当您将数据添加到列表中时,检查提醒类型等于“每月”
完整代码
// Generate real data for each item
public List<ReminderItem> generateData(int count) {
String strType = "Monthly";
ArrayList<ReminderItem> items = new ArrayList<>();
// Get all reminders from the database
List<Reminder> reminders = rb.getAllReminders();
// Initialize lists
List<String> Titles = new ArrayList<>();
List<String> Type = new ArrayList<>();
List<Integer> IDList= new ArrayList<>();
// Add details of all reminders which type="Monthly" in their respective lists
for (Reminder r : reminders) {
String reminderType = r.getType();
if(reminderType.equalsIgnoreCase(strType)) {
Titles.add(r.getTitle());
Type.add(reminderType);
IDList.add(r.getID());
}
}
return items;
}
//为每个项目生成真实数据
公共列表生成数据(整数计数){
字符串strType=“Monthly”;
ArrayList items=新建ArrayList();
//从数据库中获取所有提醒
列表提醒=rb.getAllMembers();
//初始化列表
列表标题=新的ArrayList();
列表类型=新建ArrayList();
List IDList=new ArrayList();
//在各自的列表中添加类型为“每月”的所有提醒的详细信息
对于提醒(r:提醒){
字符串提醒类型=r.getType();
if(提醒类型.相等信号案例(strType)){
Titles.add(r.getTitle());
Type.add(提醒类型);
IDList.add(r.getID());
}
}
退货项目;
}
您有两种选择来执行此操作
首先,通过执行下面的sql语句,直接从数据库中获取提醒类型为“每月”的记录
第二种是,当您将数据添加到列表中时,检查提醒类型等于“每月”
完整代码
// Generate real data for each item
public List<ReminderItem> generateData(int count) {
String strType = "Monthly";
ArrayList<ReminderItem> items = new ArrayList<>();
// Get all reminders from the database
List<Reminder> reminders = rb.getAllReminders();
// Initialize lists
List<String> Titles = new ArrayList<>();
List<String> Type = new ArrayList<>();
List<Integer> IDList= new ArrayList<>();
// Add details of all reminders which type="Monthly" in their respective lists
for (Reminder r : reminders) {
String reminderType = r.getType();
if(reminderType.equalsIgnoreCase(strType)) {
Titles.add(r.getTitle());
Type.add(reminderType);
IDList.add(r.getID());
}
}
return items;
}
//为每个项目生成真实数据
公共列表生成数据(整数计数){
字符串strType=“Monthly”;
ArrayList items=新建ArrayList();
//从数据库中获取所有提醒
列表提醒=rb.getAllMembers();
//初始化列表
列表标题=新的ArrayList();
列表类型=新建ArrayList();
List IDList=new ArrayList();
//在各自的列表中添加类型为“每月”的所有提醒的详细信息
对于提醒(r:提醒){
字符串提醒类型=r.getType();
if(提醒类型.相等信号案例(strType)){
Titles.add(r.getTitle());
Type.add(提醒类型);
IDList.add(r.getID());
}
}
退货项目;
}
非常感谢@HirendrasinhS.Rathod非常感谢@HirendrasinhS.Rathod