在android中重新启动活动

在android中重新启动活动,android,listview,onresume,Android,Listview,Onresume,我有一个活动A,它有一个按钮和一个显示书籍名称的列表视图。点击按钮,活动B开始,用户填写图书表单并保存。当他按下后退按钮时,用户进入活动A。在这里,图书名称应该在listview中更新。我想我必须在onResume()中编写一些代码。你能告诉我写什么吗。我正在使用自定义列表视图。是的,你说得对。在onResume中编写代码 更新日期时,只需调用notifyDataSetChanged();对于您的ListView适配器 希望对你有帮助 您可以在用户按“保存”时启动该活动,它将为您修复该活动。 或

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

是的,你说得对。在onResume中编写代码

更新日期时,只需调用notifyDataSetChanged();对于您的ListView适配器


希望对你有帮助

您可以在用户按“保存”时启动该活动,它将为您修复该活动。 或者,如果要按back:

@Override
public void onResume(){
    super.onResume();
    list.clear();
    list.addAll(getBooks());
    adapter.notifyDataSetChanged();
}

使用
startActivityForResult()
启动活动B,并使用方法
onActivityResult()
重新启动或处理新数据

例如,要启动活动B:

String callingActivity = context.getLocalClassName();
Intent newActivity = new Intent(getApplicationContext(),ActivityB.class);
newActivity.setData(Uri.parse(callingActivity));
startActivityForResult(newActivity, 0);
然后在你的活动中的某个地方上一节课:

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

只需记住使用
Intent启动变量在调用onCreate之前的某个地方

e、 g


然后只需通过单击按钮调用
startActivityB()
,或者我需要从活动B发送数据的任何内容即可。如果我需要发送,如何发送数据。@prabhuM这取决于数据的存储方式。如果已将其保存到数据库、文件或甚至SharedReferences,则“否”,活动a将能够访问它,前提是用户在按下“后退”键之前实际将数据保存在活动B中。无论如何,我不知道通过后退按钮操作传递数据的方法。
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);
  }

}