我有两个POJO类,即PostFeed
和SessionFeed
如何制作不同类型对象的ArrayList?
PostFeed.class
public class PostFeed implements Parcelable{
private int pid;
private int uid;
private String link;
private String title;
private String description;
private int up;
private int comment_count;
private String postPicUrl;
private Date dop;
private String user_name;
private String user_pic;
private String user_status;
private DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//getters and setters
}
SessionFeed.class
public class SessionFeed implements Parcelable{
private String session_title;
private String session_image;
private String session_description;
private int session_id;
private String s_venue;
private String s_coordinator;
private String s_c_email;
private String s_c_phone;
private String resource_person;
private String rp_desg;
private String time_and_date;
private String address;
private String room;
private DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
private Date Dosp;
String user_name;
int uid;
String user_status;
String user_pic;
// getters and setters
}
我试图创建一个搜索活动,其从MySqlite数据库搜索数据。在两个不同的数据库中,每个类型有两个单独的表,即PostFeedTable
和SessionFeedTable
。
在我的数据库操作类,这就是我要回:
public ArrayList<PostFeed> readPostForSearch(String searchText, DatabaseOperations dop){
SQLiteDatabase sqLiteDatabase = dop.getReadableDatabase();
ArrayList<PostFeed> newsFeedList = new ArrayList<>();
String query ="select * from " + html_test_const.getTable_name() + " where " + html_test_const.getTitle() +" LIKE '%"+searchText+"%' OR "+ html_test_const.getDescription() + " LIKE '%"+searchText+"%'"+" order by date desc " +";";
Cursor cursor = sqLiteDatabase.rawQuery(query,null);
if (cursor != null && cursor.moveToFirst()) {
L.m("loading entries " + cursor.getCount() + new Date(System.currentTimeMillis()));
do {
//create a new object and retrieve the data from the cursor to be stored in this object
PostFeed postFeed = new PostFeed();
postFeed.setTitle(cursor.getString(cursor.getColumnIndex(html_test_const.getTitle())));
postFeed.setLink(cursor.getString(cursor.getColumnIndex(html_test_const.getLink())));
postFeed.setDescription(cursor.getString(cursor.getColumnIndex(html_test_const.getDescription())));
long dateOfPost = cursor.getLong(cursor.getColumnIndex(html_test_const.getDate()));
postFeed.setDop(new java.sql.Date(dateOfPost));
postFeed.setUser_name(cursor.getString(cursor.getColumnIndex(html_test_const.getUser_name())));
postFeed.setPid(cursor.getInt(cursor.getColumnIndex(html_test_const.getSr_key())));
postFeed.setUp(cursor.getInt(cursor.getColumnIndex(html_test_const.getUp_down())));
postFeed.setComment_count(cursor.getInt(cursor.getColumnIndex(html_test_const.getComment_count())));
postFeed.setUid(cursor.getInt(cursor.getColumnIndex(html_test_const.getUid())));
postFeed.setPostPicUrl(cursor.getString(cursor.getColumnIndex(html_test_const.getPost_pic())));
postFeed.setUser_pic(cursor.getString(cursor.getColumnIndex(html_test_const.getUser_pic())));
postFeed.setUser_status(cursor.getString(cursor.getColumnIndex(html_test_const.getUser_status())));
newsFeedList.add(postFeed);
} while (cursor.moveToNext());
}
return newsFeedList;
}
这是相同的与各个变量的会话数据库操作。
SearchActivity包含一个回收站视图,其适配器采用
ArrayList
并设置该列表,该列表还包含两种类型的行元素。
问题:如何创建一个包含这两种类型的对象,并进一步如何使回收观点表明,这两种类型的ArrayList中的对象的ArrayList。
如果你需要更多的澄清让我知道。提前致谢。
您可以创建一个包含对象a和b的对象c。然后创建一个c的数组列表。 – nikka
听起来很简单,你可以请代码片段帮忙吗? @nikka –
添加了一个答案,请评论,如果你能够使用相同或不是 – nikka