gpt4 book ai didi

java - 以与顶部栏后退按钮相同的方式处理 SettingsActivity onBackpressed()

转载 作者:行者123 更新时间:2023-11-30 10:38:49 25 4
gpt4 key购买 nike

我有一个 SettingsActivity,它的顶部栏上有一个“向上”按钮。我的 AettingsActivity 也有 header ,可以加载正确的设置 fragment 。默认情况下,当我按下顶部栏的“向上”按钮时,它会关闭可见 fragment 并返回到标题,如果在标题 View 上按下则关闭 Activity 。 Howeer,我的手机“后退”按钮的工作方式不同 - 它只是关闭 Activity 。我如何使“向上”箭头和后退按钮以相同的方式工作以保持我的应用程序一致?我应该将 onBackPressed 添加到我的 Activity 中吗?如果是,我应该在其中添加什么?

我的设置 Activity :

public class SettingsActivity extends AppCompatPreferenceActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupActionBar();
}


private void setupActionBar() {
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {

actionBar.setDisplayHomeAsUpEnabled(true);
}
}

@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
if (!super.onMenuItemSelected(featureId, item)) {
NavUtils.navigateUpFromSameTask(this);

}
return true;
}
return super.onMenuItemSelected(featureId, item);
}


@Override
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.pref_headers, target);
}


protected boolean isValidFragment(String fragmentName) {
return PreferenceFragment.class.getName().equals(fragmentName)
|| NewsPreferenceFragment.class.getName().equals(fragmentName)
|| OtherPreferenceFragment.class.getName().equals(fragmentName);
}


public static class NewsPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_news);
setHasOptionsMenu(true);


}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
startActivity(new Intent(getActivity(), SettingsActivity.class));
return true;
}
return super.onOptionsItemSelected(item);
}
}


public static class OtherPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_other);
setHasOptionsMenu(true);

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
startActivity(new Intent(getActivity(), SettingsActivity.class));
return true;
}
return super.onOptionsItemSelected(item);
}
}


}

这是在创建新的 SettingsActivity 时从 Android Studio 生成的默认代码,只是做了一些更改以适合我的应用

最佳答案

你只需要覆盖onBackPressed()方法:

@Override
public void onBackPressed() {
NavUtils.navigateUpFromSameTask(this);
}

关于java - 以与顶部栏后退按钮相同的方式处理 SettingsActivity onBackpressed(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39552652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com