Sha*_*ham 1 java android android-intent android-listview
我有个问题.我有两个活动(MainActivity,EditAccount).在MainActivity中,我从数据库编译了一个列表视图.在EditActivty中,我将数据更新到数据库中,并在数据更改后立即返回MainActivity:
public class EditAccount extends Activity {
......
......
public void update_acc(View view){
EditText accName=(EditText)findViewById(R.id.acc_name);
EditText comment=(EditText)findViewById(R.id.comments);
String acc_name=accName.getText().toString();
String comments=comment.getText().toString();
Intent intent=getIntent();
int id = (int) intent.getExtras().getLong("data_id");
String data_id= Integer.valueOf(id).toString();
datasource.updateEvent(acc_name, comments, data_id);
datasource.close();
Toast.makeText(getBaseContext(), "Account updated; Acc_name:"+acc_name+", Comment:"+comments, Toast.LENGTH_LONG).show();
super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
问题是,当Activity重定向回MainActivity时,ListView中的数据不会更新.那么,如何通知ListView数据已被更改?请帮忙.在此先感谢,等待您的回复......
问题是您可能正在从数据库内部填充ListView onCreate().因此,解决方案是使用数据库填充ListView,onResume()该数据库将从数据库中获取更新的数据.
因为当你返回到MainActivity时onResume()会调用它,所以只需将你的代码从数据库中取出onResume()而不是onCreate()更新你的ListView.