Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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 如何创建back函数并设置最后一个contentView_Android_Android View - Fatal编程技术网

Android 如何创建back函数并设置最后一个contentView

Android 如何创建back函数并设置最后一个contentView,android,android-view,Android,Android View,我的应用程序中有很多视图,现在的问题是如何从一个视图返回到另一个视图 我可以在每个视图中设置后退按钮,但我想使用android后退硬按钮 我试过这样的方法: public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK) { finish(); } return false; } 但问题是这将关闭我的应用程

我的应用程序中有很多视图,现在的问题是如何从一个视图返回到另一个视图

我可以在每个视图中设置后退按钮,但我想使用android后退硬按钮

我试过这样的方法:

public boolean onKeyDown(int keyCode, KeyEvent event) 
{       
  if(keyCode==KeyEvent.KEYCODE_BACK)
          {
      finish();
          }
return false;
}
但问题是这将关闭我的应用程序。 你能给我一个合适的解决方案吗?比如,记住上次设置的视图,然后回到这个视图或类似的东西

以下是我用来更改视图的代码(这是我主要活动中的一个方法):

谢谢。

你这样做是不对的

一个
活动
类应该只有内容
视图
。(因为它是推荐的方式,易于使用和实施)

如果要转到下一个
视图
,请将其显示在另一个单独的
活动

完成后,您将自动重定向到上一个
活动

(您不需要记住前面的视图:)

,如何使用
活动
堆栈。

你这样做是不对的

一个
活动
类应该只有内容
视图
。(因为它是推荐的方式,易于使用和实施)

如果要转到下一个
视图
,请将其显示在另一个单独的
活动

完成后,您将自动重定向到上一个
活动

(您不需要记住前面的视图:)


,如何使用
活动
堆栈。

我不确定是否正确理解您的问题,因为Android会自动为您解决所有这些问题。当您切换到另一个视图时,视图一旦打开,就会暂停(在屏幕上但没有焦点)或停止(没有焦点)

如果当前视图(活动)已由上一个视图(活动)启动,则按下后退按钮将使您“关闭”当前视图并自动返回上一个视图

现在有两件事:

  • 也许你只是在同一个活动中打开所有视图,通过打开或关闭组件来打开,这是一种不好的方式,android不推荐这样做。您应该做的是1个视图=1个活动

  • 你的想法就像“iPhone/iPad”,你必须在“视图”中实现后退按钮。在安卓系统中,你不需要这样做。在代码中输入“finish”命令似乎关闭了应用程序,这使我认为您已经按照第1点中的说明进行了编程

  • 希望能有帮助

    编辑

    要开始一项新的活动,请这样做

    startActivity(new Intent(this, MyOtherActivity.class));
    
    您可以将其放在代码中要加载新视图的位置(活动)

    现在,如果要在活动之间传输某些信息,必须执行以下操作:

    Intent myIntent; //intent declaration
    
    int aNumber = 10; // info to send to other activity
    String aString = "abcd"; // info to send to other activity
    
    // link Intent to the other activity
    myIntent = new Intent(view.getContext(), MyOtherActivity.class) 
    
    //put the extra info
    myIntent.putExtra("myNumber", aNumber);
    myIntent.putExtra("myString", aString);
    
    //start the new view/activity
    startActivity(myIntent);
    
    在新打开的活动中,您可以像这样检索信息(通常在oncreate中)


    我不确定是否正确理解您的问题,因为Android会自动为您解决所有这些问题。当您切换到另一个视图时,视图一旦打开,就会暂停(在屏幕上但没有焦点)或停止(没有焦点)

    如果当前视图(活动)已由上一个视图(活动)启动,则按下后退按钮将使您“关闭”当前视图并自动返回上一个视图

    现在有两件事:

  • 也许你只是在同一个活动中打开所有视图,通过打开或关闭组件来打开,这是一种不好的方式,android不推荐这样做。您应该做的是1个视图=1个活动

  • 你的想法就像“iPhone/iPad”,你必须在“视图”中实现后退按钮。在安卓系统中,你不需要这样做。在代码中输入“finish”命令似乎关闭了应用程序,这使我认为您已经按照第1点中的说明进行了编程

  • 希望能有帮助

    编辑

    要开始一项新的活动,请这样做

    startActivity(new Intent(this, MyOtherActivity.class));
    
    您可以将其放在代码中要加载新视图的位置(活动)

    现在,如果要在活动之间传输某些信息,必须执行以下操作:

    Intent myIntent; //intent declaration
    
    int aNumber = 10; // info to send to other activity
    String aString = "abcd"; // info to send to other activity
    
    // link Intent to the other activity
    myIntent = new Intent(view.getContext(), MyOtherActivity.class) 
    
    //put the extra info
    myIntent.putExtra("myNumber", aNumber);
    myIntent.putExtra("myString", aString);
    
    //start the new view/activity
    startActivity(myIntent);
    
    在新打开的活动中,您可以像这样检索信息(通常在oncreate中)


    事实上我不确定你是否完全理解,但是

    获取地图或共享首选项,然后在“后退”按钮上设置地图上的最后一个视图或共享首选项

    在调用或启动活动时获取存储您的数据


    这对你有帮助

    事实上我不确定你是否完全理解,但是

    获取地图或共享首选项,然后在“后退”按钮上设置地图上的最后一个视图或共享首选项

    在调用或启动活动时获取存储您的数据


    这对你有帮助

    表示要在“后退”按钮上显示上一个视图?是否在移动到下一个活动时完成当前活动?请输入开始新活动或下一个活动的代码。我编辑了我的问题@iDroid explorerMans您想在后退时显示上一个视图按钮吗?您是否在移动到下一个活动时完成当前活动?请输入开始新活动或下一个活动的代码。我编辑了我的问题@iDroid explorer谢谢你的回答@Adil,好吗?如果我理解,我必须为我的每个视图使用不同的类?@Ana:是的。如果您想显示登录视图,您应该有一个
    LoginActivity
    ,它将把您的
    R.layout.userlogedon
    显示为内容视图。快乐编码!干杯!:)@安娜:是的。你应该在所有视图中使用不同的活动。谢谢你的回答@Adil,好吗?如果我理解,我必须在每个视图中使用不同的类?@Ana:是的。如果你