2015-12-07 43 views
0

我的MainActivity包含一個導航抽屜。 在這個抽屜裏有一個叫做「登錄」的項目。 另外,我創建了一個靜態變量:在Activity或Fragment關閉後執行一個函數

public static boolean SIGNED = false;

的目的是,用戶在「登錄」點擊後,他將得到一個活動(或片段),他將插入一行憑據進入它。然後,如果憑證是正確的 - 導航抽屜會包含「註銷」項目,並會打開一些其他活動/片段(僅針對用戶燒錄,假設爲「HomeFragment」)。

我登錄活動包括:

  case R.id.bSign_in: 
 
       signIn(); 
 
       finish(); 
 
       break;

但是,當然,我解決不了這個代碼的問題(在MainActivity):

  case R.id.nav_sign_in: 
 
       startActivity(new Intent(this, LoginActivity.class)); 
 
       if (SIGNED) 
 
        fragment = new HomeFragment(); 
 
       return true;

我能做些什麼來解決它? 如果活動和片段之間的解決方案不同 - 我對這兩者都感興趣。

+0

是你的問題如何改變活動,並立即打開一個新的片段? –

回答

2

活動返回後執行某些邏輯的標準方式是使用startActivityForResult,活動返回後 - 執行onActivityResult,您可以在其中執行代碼。

在片段的情況下,您可以在關閉時(即用戶按下登錄按鈕)直接調用您的活動(擁有此片段的活動)的功能。

相關問題