как я могу обновить вид списка SimpleCursorAdapter из класса ExampleReciver extends BroadcastReceiver
я недавно занимаюсь программированием прошу строго не судить. Прошу любой помощи. Не могу понять как обновить SimpleCursorAdapter. вот мой класс Activity
public class AlarmManagerActivity extends Activity {
private static String CHANNEL_ID = "Cat channel";
private static final int CM_DELETE_ID = 1;
int den;
SharedPreferences sPref;
SimpleCursorAdapter scAdapter1;
ListView lvData2;
private AlarmManagerBroadcastReceiver alarm;
SQLiteDatabase db;
Cursor updatedCursor;
DatabaseHelper databaseHelper;
boolean iteM;
final String SAVED_TEXT = "saved_text";
private static final int LOADER_ID = 225;
@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
alarm = new AlarmManagerBroadcastReceiver();
Context context = this.getApplicationContext();
databaseHelper = new DatabaseHelper(context);
// создаем базу данных
databaseHelper.create_db();
db = databaseHelper.open();
lvData2 = (ListView) findViewById(R.id.lv);
// loadText();
// saveText(true);
startRepeatingTimer();
// getLoaderManager().initLoader(LOADER_ID, null, this);
updatedCursor = db.query(TABLE2, null, null, null, null, null, null);
String[] from1 = new String[] {DatabaseHelper.COLUMN_YEAR2, DatabaseHelper.COLUMN_NAME2};
int[] to1 = new int[] { R.id.tvData,R.id.tvName};
scAdapter1 = new SimpleCursorAdapter(this, R.layout.item, updatedCursor, from1, to1,2);
lvData2.setAdapter(scAdapter1);
// добавляем контекстное меню к списку
registerForContextMenu(lvData2);
}
и есть класс ExampleReciver extends BroadcastReceiver
public class ExampleReciver extends BroadcastReceiver {
SQLiteDatabase db;
DatabaseHelper databaseHelper;
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
AlarmManagerBroadcastReceiver BR = new AlarmManagerBroadcastReceiver();
databaseHelper = new DatabaseHelper(context);
// создаем базу данных
databaseHelper.create_db();
db = databaseHelper.open();
db.delete(DatabaseHelper.TABLE2, "Date1 = ?", new String[]{String.valueOf(BR.calendar())});
Cursor updatedCursor = db.query(TABLE2, null, null, null, null, null, null);
updatedCursor.moveToFirst();
BR.names(context);
//AlarmManagerActivity AM = new AlarmManagerActivity();
//AM.updateListView();
db.close();
// throw new UnsupportedOperationException("Not yet implemented");
}
}
вопрос: как обновить SimpleCursorAdapter при удалении данных из таблицы SQLite?
Ответы (1 шт):
Автор решения: Дмитрий Решетников
→ Ссылка
public class AlarmManagerActivity extends Activity {
private static String CHANNEL_ID = "Cat channel";
private static final int CM_DELETE_ID = 1;
int den;
SharedPreferences sPref;
SimpleCursorAdapter scAdapter1;
ListView lvData2;
private AlarmManagerBroadcastReceiver alarm;
SQLiteDatabase db;
Cursor updatedCursor;
DatabaseHelper databaseHelper;
boolean iteM;
BroadcastReceiver updateUIReciver;
final String SAVED_TEXT = "saved_text";
private static final int LOADER_ID = 225;
@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
alarm = new AlarmManagerBroadcastReceiver();
Context context = this.getApplicationContext();
databaseHelper = new DatabaseHelper(context);
// создаем базу данных
databaseHelper.create_db();
db = databaseHelper.open();
lvData2 = (ListView) findViewById(R.id.lv);
// loadText();
// saveText(true);
startRepeatingTimer();
// getLoaderManager().initLoader(LOADER_ID, null, this);
IntentFilter filter = new IntentFilter();
filter.addAction("service.to.activity.transfer");
updateUIReciver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//UI update here
if (intent != null)
//Toast.makeText(context, intent.getStringExtra("number").toString(), Toast.LENGTH_LONG).show();
updateListView(context);
}
};
registerReceiver(updateUIReciver, filter);
updatedCursor = db.query(TABLE2, null, null, null, null, null, null);
String[] from1 = new String[] {DatabaseHelper.COLUMN_YEAR2, DatabaseHelper.COLUMN_NAME2};
int[] to1 = new int[] { R.id.tvData,R.id.tvName};
// scAdapter1 = new SimpleCursorAdapter(this, R.layout.item, updatedCursor, from1, to1,2);
scAdapter1 = new Adapter(this,R.layout.item,updatedCursor,from1,to1,2);
ListView lvData2 = (ListView) findViewById(R.id.lv);
lvData2.setItemsCanFocus(true);
final View item = getLayoutInflater().inflate(R.layout.item,null);
Button yourButton = (Button) item.findViewById(R.id.button);
//lvData.setAdapter(scAdapter);
lvData2.setAdapter(scAdapter1);
// добавляем контекстное меню к списку
registerForContextMenu(lvData2);
}
protected void updateListView(Context context){
// Context context = this.getApplicationContext();
databaseHelper = new DatabaseHelper(context);
// создаем базу данных
databaseHelper.create_db();
db = databaseHelper.open();
//Cursor cursor = db.query(TABLE2, null, null, null, null, null, null);
//userCursor.requery();
updatedCursor = db.query(TABLE2, null, null, null, null, null, null);
//updatedCursor.moveToFirst();
Log.d("updatedCursor", String.valueOf(updatedCursor));
scAdapter1.changeCursor(updatedCursor);
}
public class ExampleReciver extends BroadcastReceiver {
SQLiteDatabase db;
DatabaseHelper databaseHelper;
public static final String WHERE_MY_CAT_ACTION = "ru.alexanderklimov.action.CAT";
public static final String ALARM_MESSAGE = "Срочно пришлите кота!";
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
AlarmManagerBroadcastReceiver BR = new AlarmManagerBroadcastReceiver();
databaseHelper = new DatabaseHelper(context);
// создаем базу данных
databaseHelper.create_db();
db = databaseHelper.open();
db.delete(DatabaseHelper.TABLE2, "Date1 = ?", new String[]{String.valueOf(BR.calendar())});
Cursor updatedCursor = db.query(TABLE2, null, null, null, null, null, null);
updatedCursor.moveToFirst();
BR.names(context);
Intent local = new Intent();
local.setAction("service.to.activity.transfer");
local.putExtra("number", "555");
context.sendBroadcast(local);
db.close();
// throw new UnsupportedOperationException("Not yet implemented");
}
}