从MainActivity导航到另一个片段以登录Activity返回到上一个导航片段

时间:2018-01-15 13:40:26

标签: android android-fragments android-activity android-navigation

所以这是我的方案

当我打开一个人不需要登录使用的应用程序时,我有了我的MainActivity。我试图导航到导航菜单中的另一个片段,需要有人登录,因此我将它们发送到登录活动,如果成功登录,可以完成()并使用新的发送回MainActivity分段。但不成功或按下后退按钮将使它们保持循环。

我正在寻找关于如何在这些视图之间导航以及如何确保我可以在必要时将用户发送到登录屏幕同时保持最后一个片段视图知道要导航回来的最佳策略到。

2 个答案:

答案 0 :(得分:0)

如果您从身份验证活动返回主页,请尝试添加意图并将一些参数传递给您的主要活动,这样当用户正确登录时,您可以向其显示所需的片段。

Intent i = new Intent(FirstScreen.this, SecondScreen.class);   
Boolean someParam  = true;
i.putExtra(retrievalName, someParam );

然后在主要活动中检索它,如:

Bundle bundle = getIntent().getExtras();
if(bundle.getString("retrievalName")!= null)
    {
        //Set your variables so you allow user to open fragment when clicked 
    }
  

但不成功或按下后退按钮会使它们保持循环。

可以通过向onBackPressed函数添加覆盖来解决后循环,在该函数中可以完成循环的活动。

答案 1 :(得分:0)

在第二个活动中,使用意图启动第一个活动

 Use startActivityfor result

 Intent intent=new Intent(MainActivity.this,SecondActivity.class);  
            startActivityForResult(intent, 2);// Activity is started 
   // with requestCode 2  

// In Another acitvity do this on 

          Intent intent=new Intent();  
                intent.putExtra("MESSAGE",message);  
                setResult(2,intent);  
                finish();//finishing activity  

//如果你想在主要活动覆盖onActivityresult

上处理某些事情
  // Call Back method  to get the Message form other Activity  
  @Override  
    protected void onActivityResult(int requestCode, int resultCode, 
    Intent data)  
   {  
             super.onActivityResult(requestCode, resultCode, data);  
              // check if the request code is same as what is passed  
                 here it is 2  
               if(requestCode==2)  
                     {  
                        String message=data.getStringExtra("MESSAGE");   

                     }  
 }