Ich habe zwei pojo Klassen, nämlich PostFeed
und SessionFeed
Wie man ArrayList von verschiedenen Arten von Objekten macht?
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
}
Ich versuche, eine Suchaktivitäten zu schaffen, Durchsucht die Daten aus der MySqlite-Datenbank. Es gibt zwei getrennte Tabellen für jeden Typ, d. H. PostFeedTable
und SessionFeedTable
in zwei verschiedenen Datenbanken.
In meiner Datenbank-Operationen Klasse, das ist, was ich Rückkehr:
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;
}
Dies ist das gleiche für die Sitzungsdatenbankoperationen mit entsprechenden Variablen.
SearchActivity enthält eine Recycler-Ansicht, deren Adapter eine
ArrayList
akzeptiert, und legt diese Liste fest, die außerdem zwei Arten von Zeilenelementen enthält.
Frage: Wie eine Arraylist erstellen, die diese beiden Arten von Gegenständen enthalten und wie weiter Recycler Ansicht zeigt diese beiden Arten von Objekten aus der Arraylist zu machen.
Wenn Sie weitere Erläuterungen benötigen, lassen Sie es mich wissen. Danke im Voraus.
Sie können ein Objekt c erstellen, das beide Objekte a und b enthält. Dann erstellen Sie eine Arraylist von c. – nikka
Klingt wirklich einfach, können Sie bitte mit Code-Schnipsel helfen? @nikka –
Eine Antwort hinzugefügt, bitte kommentieren, wenn Sie in der Lage sind, das gleiche zu verwenden oder nicht – nikka