Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 按下后退按钮时如何刷新屏幕_Android_Android Intent_Android Listview - Fatal编程技术网

Android 按下后退按钮时如何刷新屏幕

Android 按下后退按钮时如何刷新屏幕,android,android-intent,android-listview,Android,Android Intent,Android Listview,我有两个屏幕的场景 屏幕1以列表格式显示来自API的数据 菜单栏中有一个“+”按钮 单击此按钮将用户带到屏幕2 用户可以在屏幕2上输入一些信息,然后按下屏幕顶部的“保存”按钮。这会向我的API发送一个帖子并保存数据 保存后,我想将用户放回屏幕1。我已经用这个做了: @Override public boolean onOptionsItemSelected(MenuItem menuItem) { if (menuItem.getTitle().toString().equalsIgno

我有两个屏幕的场景

  • 屏幕1以列表格式显示来自API的数据
  • 菜单栏中有一个“+”按钮
  • 单击此按钮将用户带到屏幕2
  • 用户可以在屏幕2上输入一些信息,然后按下屏幕顶部的“保存”按钮。这会向我的API发送一个帖子并保存数据 保存后,我想将用户放回屏幕1。我已经用这个做了:

    @Override
    public boolean onOptionsItemSelected(MenuItem menuItem) {
        if (menuItem.getTitle().toString().equalsIgnoreCase("save")) {
            new CreateSomethingTask(this,enteredName.getText().toString(), id).execute();
            Intent listscreen = new Intent(getApplicationContext(), ShowListActivity.class);
            startActivity(listscreen);
            return true;
        }
        return true;
    }
    
    但是,未显示添加的项目。如果我关闭我的应用程序并再次打开它,则该项目将显示


    有什么好办法处理这个问题吗?我喜欢Github Android应用程序在创建新要点时如何处理这个问题。但我不知道如何实现这一点

    您应该以startActivityForResult()开始屏幕2。这样,您就可以发送一个结果和一个代码,然后继续刷新屏幕1。参见示例:

    下面的函数可能对您有所帮助,但未尝试

    @Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
    
        callFunctionToRefreshList();
        //or redraw data from api
        //setContentView(R.layout.activity_book);
    }