- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个 SettingsActivity
,它扩展了 PreferenceActivity
以显示我的应用中的设置。
有一个后退箭头,但它不起作用。
这是 SettingsActivity.java
文件的代码:
public class SettingsActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener{
private AppCompatDelegate mDelegate;
public static final String RESET_PASSWORD_KEY = "reset_password";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
getDelegate().installViewFactory();
getDelegate().onCreate(savedInstanceState);
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
SharedPreferences sharedPreferencesCompat = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
Preference myPref = (Preference) findPreference(RESET_PASSWORD_KEY);
myPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
//open browser or intent here
Intent resetPasswordActivityIntent = new Intent(SettingsActivity.this, ResetPasswordActivity.class);
startActivity(resetPasswordActivityIntent);
return true;
}
});
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
getDelegate().onPostCreate(savedInstanceState);
}
public ActionBar getSupportActionBar() {
return getDelegate().getSupportActionBar();
}
public void setSupportActionBar(@Nullable Toolbar toolbar) {
getDelegate().setSupportActionBar(toolbar);
getDelegate().getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public MenuInflater getMenuInflater() {
return getDelegate().getMenuInflater();
}
@Override
public void setContentView(@LayoutRes int layoutResID) {
getDelegate().setContentView(layoutResID);
}
@Override
public void setContentView(View view) {
getDelegate().setContentView(view);
}
@Override
public void setContentView(View view, ViewGroup.LayoutParams params) {
getDelegate().setContentView(view, params);
}
@Override
public void addContentView(View view, ViewGroup.LayoutParams params) {
getDelegate().addContentView(view, params);
}
@Override
protected void onPostResume() {
super.onPostResume();
getDelegate().onPostResume();
}
@Override
protected void onTitleChanged(CharSequence title, int color) {
super.onTitleChanged(title, color);
getDelegate().setTitle(title);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
getDelegate().onConfigurationChanged(newConfig);
}
@Override
protected void onStop() {
super.onStop();
getDelegate().onStop();
}
@Override
protected void onDestroy() {
super.onDestroy();
getDelegate().onDestroy();
}
public void invalidateOptionsMenu() {
getDelegate().invalidateOptionsMenu();
}
private AppCompatDelegate getDelegate() {
if (mDelegate == null) {
mDelegate = AppCompatDelegate.create(this, null);
}
return mDelegate;
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals(RESET_PASSWORD_KEY)) {
}
}
}
这是 preferences.xml
文件的代码:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<Preference
android:title="xxx"
android:summary="xxxxxx"
android:key="reset_password" />
</PreferenceScreen>
这是在 AndroidManifest.xml
中定义“SettingsActivity”的方式:
<activity
android:name=".SettingsActivity"
android:label="@string/title_activity_settings"
android:parentActivityName=".MainActivity">
</activity>
我怎样才能使那个箭头起作用?
请告诉我。
抱歉,如果问题格式不合适。我还是个初学者。
最佳答案
您需要在 onCreate()
中调用您的私有(private)方法 setSupportActionBar()
。
此外,您可能想要实现 onOptionsItemSelected
:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
关于android - setDisplayHomeAsUpEnabled() 在 PreferenceActivity 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36433299/
在我的配置 Activity 中,我需要创建一个首选项屏幕,顶部有一个固定 View ,显示页面中配置的内容的预览。我不想更改主首选项屏幕(我已经有一个单独的 Activity )我想要一个不同的“嵌
我有这样的偏好选项: public class Opciones extends PreferenceActivity { @Override public void onCreate
我正在尝试使用以下代码在首选项 Activity 中设置工具栏。它确实显示了工具栏,但它覆盖了首选项列表。 Here来 self 的应用程序的屏幕截图链接我正在做这个 bcz 我正在运行时更改样式主题
我用谷歌搜索但没有找到显示 android 中 PreferenceActivities 生命周期的等效流程图。这样的流程图存在吗?显示基本 Activity 生命周期的那个对理解 Activity
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.emphie.fod/org.emphie.fod.pre
使用 Android 注释。我的偏好: @SharedPref(value = SharedPref.Scope.APPLICATION_DEFAULT) public interface MyPre
我是 android 开发的新手,我正在尝试弄清楚如何将用户带到我的 PreferenceActivity。我已经创建了一个具有相应布局的 Preferences 类,但是我无法弄清楚如何在没有物理菜
我最近接触了 PreferenceActivity,我想改变我处理与 xml 中定义的 EditTextPreference 交互的方式。 我已经在样板文件覆盖 onListItemClick( 的地
我试图在单击后退按钮后关闭首选项 Activity ..但是当我按下它然后单击多任务按钮时,我看到为我的应用程序打开了两个 Activity ,一个是我当前正在使用的 Activity ,另一个是 p
我读了http://developer.android.com/reference/android/app/Activity.html但我对 PreferenceActivity 生命周期有疑问: P
我正在编写一个带有 PreferenceFragment 的 PreferenceActivity,当设备的方向发生变化时(即从横向到纵向),将抛出一个 InstantiationException反
我看到一些应用程序在某些应用程序的设置中有弹出窗口(如果您在 Google Play 的设置中单击“开源许可证”)和搜索栏(通常用于音量和字体大小)。 这些是如何实现的?在res/xml/pref.x
我正在实现 PreferenceActivity,它会要求用户输入用户名和密码。我将使用 EditTextPreference 作为用户名,但我需要什么元素才能有“密码输入”,这将隐藏输入的数据(即更
在我的 android 应用程序中,我想制作一个反馈对话框,该对话框将在应用程序第二次启动时显示。我怎样才能做到这一点 ?我可以通过 PreferenceActivity 中的变量来完成吗?如果pre
我最重要的问题是:在 Android 中 PreferenceActivity , 我怎样才能写一个 OnClickListener当我浏览 PreferenceScreen 时,这将具有与按 And
我有一个 MainActivity 和一个从该 Activity 调用的 PreferenceActivity。我还有一项服务正在运行以查询这些首选项。 当我打印这些值时。我明白了: D/pref_s
在我的应用程序中,我想在我的应用程序中使用特定首选项时显示警告。我试过使用 PreferenceActivity.onPreferenceTreeClick 和 onPreferenceClickLi
我有这样一段代码:)我想编辑我的自定义首选项布局的文本属性。但是从 getView 函数对对象所做的任何更改都不会影响首选项屏幕中的实际列表。有任何想法吗?我知道我不能扩展 PreferenceScr
我有一个扩展 Preference 的自定义类,我将它与 PreferenceActivity 结合使用。 当我尝试调整我的 Preference 正在使用的布局中的高度(使用静态 layout_he
在PreferenceActivity中使用一个preference文件(而不是默认的共享preferences)的方法如下: public class MyPreferencesActivity e
我是一名优秀的程序员,十分优秀!