2016-09-24 51 views
3

對於我的應用程序,我使用了一個bouton來註銷,但是現在我想使用操作欄(當用戶單擊註銷圖標時,他會轉到主頁),我無法讓它們一起生活。註銷操作欄

(我是法國人,很難編碼,因爲所有英文都是英文的,所以請耐心等待)。

非常感謝。

我的按鈕的代碼爲:

btn_logout.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       sessionManager.logout(); 
       Intent intent = new Intent(getApplicationContext(), MainActivity.class); 
       startActivity(intent); 
       finish(); 
      } 
     }); 

我的代碼,我想補充的圖標註銷:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     int id = item.getItemId(); 

     if (id == R.id.action_logout) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 

我的XML:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <item 
     android:id="@+id/action_logout" 
     android:icon="@android:drawable/ic_lock_power_off" 
     android:title="@string/logout" 
     app:showAsAction="ifRoom" /> 

</menu> 
+1

把這段代碼(sessionManager.logout(); 意向意圖=新意圖(getApplicationContext(),MainActivity.class); startActivity(意向); 完成();)在這裏(如果(ID == R.id.action_logout){)那麼你可以刪除所有的點擊代碼(btn_logout.setOnClickListener(new View.OnClickListener(){.........) – Tasos

+1

非常感謝Tasos。它的工作原理: ) –

回答

1

當用戶點擊菜單項時,您需要做些什麼。

if (id == R.id.action_logout) { 
    logout(); 
    return true; 
} 

移動你的註銷碼的方法,所以你可以從任何地方調用它:

private void logout() { 
    sessionManager.logout(); 
    startActivity(new Intent(this, MainActivity.class)); 
    finish(); 
} 
1

工作好這個樣子。感謝你們。

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_logout) { 
      sessionManager.logout(); 
      Intent intent = new Intent(getApplicationContext(), MainActivity.class); 
      startActivity(intent); 
      finish(); 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    }