我有一个活动,GridView
,显示我的数据库中的数据。当用户选择Account
时,它将加载另一个活动AccountManager
,其中将包含从GridView
中选择的项目的所有细节,并允许用户从那里管理它(修改,删除和什么)。Android SQLite在修改后刷新数据
问题:
当用户修改Account
做出不AccountManager
显示了修改,而是仍然显示从GridView
初始数据。我的猜测是这是因为从GridView
链接到AccountManager
的数据不直接链接到数据库,而是我使用中间人,因此数据是静态的并且与数据库分开。
问题:
有没有一种方法来更新AccountManager
的数据,而无需更改代码。如果是的话,我该怎么做,如果没有什么方法可以让AccountManager
上的数据与我的数据库中的数据相关联,那么修改后立即反映在AccountManager
上。
我如何从GridView
数据传递到AccountManager
grid.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
try {
SQLiteCursor cr = (SQLiteCursor) parent.getItemAtPosition(position);
String name = cr.getString(cr.getColumnIndex(DatabaseHelper.colName));
int amount = cr.getInt(cr.getColumnIndex(DatabaseHelper.colAmount));
String purpose = cr.getString(cr.getColumnIndex(DatabaseHelper.colPurpose));
String Terms = cr.getString(cr.getColumnIndex(DatabaseHelper.colTermsClass));
String Status = cr.getString(cr.getColumnIndex(DatabaseHelper.colStatClass));
String date = cr.getString(cr.getColumnIndex(DatabaseHelper.colDate));
String editdate = cr.getString(cr.getColumnIndex(DatabaseHelper.colEditDate));
Account acc = new Account(name, amount, purpose, db.GetTermsID(Terms),date,editdate,db.GetStatID(Status));
acc.SetID((int) id);
Intent myIntent = new Intent(AccountManager.this, AccountDetails.class);
myIntent.putExtra("AccountObject", acc);
startActivityForResult(myIntent, 0);
}
}
}
如何检索GridView
的数据AccountManager
final Account Acc = (Account) getIntent().getSerializableExtra("AccountObject");
非常有趣。现在肯定会研究这个,特别是ContentObserver。一旦我设法正确地将其实施到我的代码中,我会尽快回复您,谢谢。 – Cai 2015-03-02 15:18:11