我的應用程序只有兩個活動:main
和preferences
的onCreate從喜好
在PreferenceActivity
(或在我的情況SettingsActivity
),用戶可以改變一些東西,影響了MainActivity
。
這是我SettingsActivity
:
public class SettingsActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
public static class SettingsFragment extends PreferenceFragment implements Preference.OnPreferenceChangeListener {
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
@Override
public boolean onPreferenceChange(Preference preference, Object value) {
return false;
}
}
}
現在我有兩個問題:
- 當用戶按下
HomeButton
似乎主屏幕不調用onCreate
這樣改變的偏好不是加載在主要活動中。我需要改變什麼,告訴android調用onCreate
函數? - 由於Android nougat中存在這些「活動更改動畫」,因此切換到新活動時,新屏幕種類爲
slides in
。但是當用戶按下HomeButton
時,預期的動畫將是slide out
,但它也是slide in
。我該如何解決這個問題?
使用'onResume'而不是'onCreate'。只要您的活動回到視圖中,它就會被調用。因此,無論您進入家庭活動的方式如何都要回到家中,它會調用'onResume'並應用用戶輸入的設置中的更改。 – Vucko