簡體   English   中英

從MainActivity導航到另一個片段,然后將Activity登錄回到上一個導航的片段

[英]Navigation from MainActivity to another fragment to login Activity back to last navigated fragment

所以這是我的情況

打開我的應用程序時,我有了MainActivity,而無需登錄即可使用。 我正在嘗試從導航菜單導航到另一個片段,該片段需要有人登錄,因此我將他們發送到登錄活動,如果登錄成功,則可以完成()並使用新的發送回MainActivity分段。 但是如果操作失敗或按下返回按鈕,則會使它們處於循環狀態。

我正在尋找關於如何在這些視圖之間導航以及如何確保在必要時可以將用戶發送到登錄屏幕的信息,同時保留最后一個片段視圖以了解要導航回的最佳策略。

如果您從身份驗證活動返回到主頁,請嘗試添加意圖並將一些參數傳遞給mainactivity,以便在用戶正確登錄后可以向他們提供所需的片段。

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函數添加替代項來解決反向循環,您可以在其中完成正在循環的活動。

在第二個活動中,使用意圖啟動第一個活動

 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  

//如果您要處理Main活動上的某些內容,請覆蓋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");   

                     }  
 }  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM