2014-07-16 19 views
3

我要重寫onBackPressed()和我有我的所有活動如何正確執行全局onBackPressed()重寫?

int backpress=0; 
public void onBackPressed(){ 
    backpress = (backpress + 1); 
    if (backpress>1) { 
     this.finish(); 
    }else{ 
     Toast.makeText(getApplicationContext(), R.string.finish, Toast.LENGTH_SHORT).show(); 
    } 

} 

這個代碼,但我只是想覆蓋函數一次,如果可能的。什麼是正確的方法?

回答

3

創建一個基地活動並在那裏定義這個方法。 Like

public class BaseActivity extends Activity { 
    private int backpress = 0; 

    @Override 
    public void onBackPressed() { 
     backpress = (backpress + 1); 
     if (backpress > 1) { 
      this.finish(); 
     } else { 
      Toast.makeText(getApplicationContext(), R.string.finish, 
        Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

並擴展此BaseActivity而不是活動ino您的活動。像

// Just override BaseActivity instead of Activity class. 
public class MyActivity extends BaseActivity { 
    // Do you task 
} 
+0

謝謝!你的解決方案工作正常 –

+0

最受歡迎> Congs .. –