1

我有一个活动 A,它有一个按钮和一个显示书籍名称的列表视图。单击按钮后,活动 B 开始,用户填写图书表格并保存。当他按下后退按钮时,用户来到活动 A。这里的书名应该在列表视图中更新。我想我必须在 onResume() 中编写一些代码。你能告诉我写什么吗?我正在使用自定义列表视图。

4

3 回答 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 回答