我有一个活动A,它有一个按钮和一个列表视图,显示书籍的名称。点击按钮,活动B开始,用户填写书籍表格并保存。当他按下后退按钮时,用户进入活动A.这里的书名应该在列表视图中更新。我想我必须在onResume()中编写一些代码。你能告诉我写些什么吗?我正在使用自定义列表视图。
答案 0 :(得分:0)
是的,你是对的。在onResume中编写代码。
更新日期时,只需调用 notifyDataSetChanged();适用于ListView适配器
希望,它对你有帮助!
答案 1 :(得分:0)
您可以在用户按“保存”时启动该活动,它会为您修复该活动。 或者如果你想回按:
@Override
public void onResume(){
super.onResume();
list.clear();
list.addAll(getBooks());
adapter.notifyDataSetChanged();
}
答案 2 :(得分:0)
使用startActivityForResult()
启动活动B并使用方法onActivityResult()
重新启动或处理新数据
例如,要启动活动B:
String callingActivity = context.getLocalClassName();
Intent newActivity = new Intent(getApplicationContext(),ActivityB.class);
newActivity.setData(Uri.parse(callingActivity));
startActivityForResult(newActivity, 0);
然后在您的活动A类的某个地方:
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if(requestCode == 0){
// do processing here
}
}
其他答案应该足够了,但是在通过其他方式恢复活动的情况下,可以调用onResume()。
当用户按下活动B中的按钮时,只需重新启动活动A,然后将以下内容放在onActivityResult中:
if(requestCode == 0){
finish();
startActivity(starterintent);
}
在活动A的onCreate中,添加starterintent = getIntent();
请记住在调用onCreate之前在Intent starterintent;
处启动变量。
e.g。
public class ActivityA extends ListActivity {
Intent starterintent;
public void onCreate(Bundle b){
starterintent = getIntent();
}
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if(requestCode == 0){
finish();
startActivity(starterintent);
}
}
private void startActivityB(){
String callingActivity = context.getLocalClassName();
Intent newActivity = new Intent(getApplicationContext(),ActivityB.class);
newActivity.setData(Uri.parse(callingActivity));
startActivityForResult(newActivity, 0);
}
}
然后只需点击按钮或任何
即可拨打startActivityB()