Я просто использовал MatrixCursor
, чтобы решить эту проблему. Посмотрите на это.
Редактировать: Извините, я только что отсканировал вопрос, когда я ответил на него. ContentProvider
- единственный способ для приложений обмениваться данными. Для операций в Приложении можно использовать SharedPreferences
для небольших данных с добавлением постоянства.
Edit v2: вот функция, которую я использовал для заполнения MatrixCursor для функции запроса моего ContentProvider. Я использую предопределенный созданный мной VIEW, который возвращает набор различных значений, и это устанавливает курсор с _ids, который я могу передать моему ExpandableListView.
private Cursor getFactions() {
MatrixCursor mc = new MatrixCursor(Model.Faction.PROJECTION);
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor c = db.query(MODELFACTION_TABLE_NAME, new String[] { Model.Faction.FACTION }, null, null, null, null, Model.Faction.FACTION + " ASC");
c.moveToFirst();
do {
mc.addRow(new Object[] { c.getPosition(), c.getString(c.getColumnIndex(Model.Faction.FACTION))});
} while (c.moveToNext() && ! c.isAfterLast());
c.close();
db.close();
return mc;
}