重启android中的活动

时间:2011-10-21 09:49:55

标签: android listview onresume

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

3 个答案:

答案 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()