2015-10-06 61 views

回答

2

你可以簡單地覆蓋onBackPressed ...

@Override 
public void onBackPressed() 
{ 
    // code here to save the change 
    super.onBackPressed(); // optional depending on your needs 
} 

由於PreferenceActivity是活動的一個子類,它應該遵循相同的生命週期。點擊鏈接,然後導航到間接子類別或這裏是直接http://developer.android.com/reference/android/preference/PreferenceActivity.html

編輯

在你的情況,你使用的是爲父活動MainActivity,這就是爲什麼它是越來越重新創建你的時候按回導航。從清單中刪除該行。

  <activity 
       android:name=".UserSettingActivity" 
       android:label="@string/app_name" 
    (remove this line) android:parentActivityName=".MainActivity" > 
      </activity> 

和更改設置活動的代碼..

public class UserSettingActivity extends PreferenceActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.user_settings); 

     getActionBar().setDisplayHomeAsUpEnabled(true); 


    } 


    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // TODO Auto-generated method stub 
     switch (item.getItemId()) { 
      case android.R.id.home: 

       Log.e("onOptionsItemSelected", "home"); 
       finish(); 
      return false; 
     } 


     return super.onOptionsItemSelected(item); 
    } 
+0

的onBackPressed它僅適用於回button.What我想是時候回去導航(<返回)是點擊,我怎麼知道。 – nanda

+0

你在清單中使用'android:parentActivityName'。我的意思是,你使用導航Up ..like:作爲'getActionBar()。setDisplayHomeAsUpEnabled(true);'? –

+0

http://www.nanda.eu5.org/AndroidSharePreferences.rar – nanda

相關問題