我有一个活动 A,它有一个按钮和一个显示书籍名称的列表视图。单击按钮后,活动 B 开始,用户填写图书表格并保存。当他按下后退按钮时,用户来到活动 A。这里的书名应该在列表视图中更新。我想我必须在 onResume() 中编写一些代码。你能告诉我写什么吗?我正在使用自定义列表视图。
问问题
1421 次
3 回答
0
是的,你是对的。在 onResume 中编写代码。
当您更新日期时,只需调用notifyDataSetChanged();为您的 ListView 适配器
希望,对你有帮助!
于 2011-10-21T09:57:29.450 回答
0
您可以在用户按下保存时启动活动,它会为您修复它。或者,如果您想回击:
@Override
public void onResume(){
super.onResume();
list.clear();
list.addAll(getBooks());
adapter.notifyDataSetChanged();
}
于 2011-10-21T09:58:40.923 回答
0
启动活动 BstartActivityForResult()
并使用方法onActivityResult()
重新启动或处理新数据
例如,要启动 Activity 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() 。
要在用户按下 Activity B 的返回按钮时简单地重新启动 Activity A,然后将以下内容放入 onActivityResult 中:
if(requestCode == 0){
finish();
startActivity(starterintent);
}
并在Activity A的onCreate中,添加starterintent = getIntent();
Intent starterintent;
请记住在调用 onCreate 之前在某处启动变量。
例如
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()
通过按钮单击或其他方式调用
于 2011-10-21T10:09:29.827 回答