相关疑难解决方法(0)

使用支持创建首选项屏幕(v21)工具栏

我在"首选项"屏幕上的支持库中使用新的"材质设计"工具栏时遇到问题.

我有一个settings.xml文件,如下所示:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory
        android:title="@string/AddingItems"
        android:key="pref_key_storage_settings">

        <ListPreference
            android:key="pref_key_new_items"
            android:title="@string/LocationOfNewItems"
            android:summary="@string/LocationOfNewItemsSummary"
            android:entries="@array/new_items_entry"
            android:entryValues="@array/new_item_entry_value"
            android:defaultValue="1"/>

    </PreferenceCategory>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

字符串在别处定义.

android android-actionbar android-actionbar-compat android-5.0-lollipop android-toolbar

115
推荐指数
9
解决办法
7万
查看次数

升级到支持库v21后,PreferenceActivity中没有ActionBar

在我升级到支持库v21之后,我的ActionBar PreferenceActivity就消失了.

我是否错过了我的主题中的一些属性来再次激活它?黑色ActionBar我遇到了类似的麻烦.

我还尝试通过添加Toolbar到根布局来添加它有点hackish ,但是这没有按预期工作.

android preferenceactivity android-support-library android-5.0-lollipop

83
推荐指数
4
解决办法
4万
查看次数

如何使用v7/v14首选项支持库?

与M版本一起,有新的支持库.其中一个似乎非常有用的是v7 Preference Support库.

它似乎没有PreferenceActivity或类似的东西,我们如何将它集成到我们的应用程序?

android android-support-library support-preference

53
推荐指数
3
解决办法
3万
查看次数

从ActionBarSherlock迁移到ActionBarCompat时有哪些常见问题?

我想从我的应用程序中删除ActionBarSherlock并将其替换为标准的ActionBarCompat.

  • 我如何实现ActionBarCompat?
  • 如何迁移活动?
  • 哪些导入替换ActionBarSherlock导入?
  • 什么是典型问题?

android actionbarsherlock android-actionbar android-actionbar-compat

27
推荐指数
2
解决办法
8307
查看次数

PreferenceActivity中的ActionBar

示例:Android Market

在我的应用程序中,我使用来自Google(位于<sdk>/samples/android-<version>/ActionBarCompat)的新动作栏兼容性示例,该示例效果很好.我唯一的问题就是将此应用于我PreferenceActivity,以获得类似Android Market中的设置的屏幕(见图片).

要填充ActionBar图标,每个图标都Activity必须扩展ActionBarActivity.问题是我Activity已经扩展PreferenceActivity并且在Java类中不能扩展多个类.

必须有一种方法来与... ActionBar一起PreferenceScreen.如果有人能为这个共同问题提供解决方案,我会很高兴.

PS:如何向PreferenceScreen添加按钮的解决方案不适合,因为ActionBar它实际上是标题栏,所以这更像是Java而不是布局.

java android android-preferences android-layout android-actionbar

12
推荐指数
2
解决办法
2万
查看次数

Android:为abc_ic_ab_back_material获取Resources $ NotFoundException

我在旧的(pre-L)设备上获得了一个Resources $ notfoundexception.我在下面包含完整的堆栈跟踪.

我的支持库版本是最新版本(24.1.0),我在gradle文件中包含了以下内容:

vectorDrawables.useSupportLibrary = true
Run Code Online (Sandbox Code Playgroud)

我的基本主题是noactionbar主题 - "Theme.AppCompat.Light.NoActionBar"

崩溃发生在我的代码中的这一行,我在支持工具栏中引用后退箭头,以便稍后更改它的颜色:

@SuppressLint("PrivateResource") final Drawable upArrow = ContextCompat.getDrawable(this, R.drawable.abc_ic_ab_back_material);
Run Code Online (Sandbox Code Playgroud)

可能是什么原因造成的?此代码适用于L或以上的所有用户.

07-19 22:36:57.029 9330-9330/mypkg E/AndroidRuntime: FATAL EXCEPTION: main
 java.lang.RuntimeException: Unable to resume activity {mypkg/mypkg.activites.myActivity}: android.content.res.Resources$NotFoundException: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020013
     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2619)
     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2647)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2104)
     at android.app.ActivityThread.access$600(ActivityThread.java:138)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
     at android.os.Handler.dispatchMessage(Handler.java:99)
     at android.os.Looper.loop(Looper.java:137)
     at android.app.ActivityThread.main(ActivityThread.java:4929)
     at java.lang.reflect.Method.invokeNative(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:511)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
     at dalvik.system.NativeStart.main(Native Method)
  Caused by: android.content.res.Resources$NotFoundException: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020013
     at android.content.res.Resources.loadDrawable(Resources.java:1957) …
Run Code Online (Sandbox Code Playgroud)

android android-resources android-support-library android-toolbar android-vectordrawable

9
推荐指数
1
解决办法
9296
查看次数

将ActionBar添加到PreferenceActivity

我正在尝试Settings Activity使用a PreferenceActivity.问题是ActionBar无论我做什么都不会出现.

我试过getSupportActionBar,getActionBar,setActionBar.什么都行不通.我用ActionBars 看到其他应用程序设置.他们不用PreferenceActivity吗?

java android android-preferences android-activity android-actionbar

8
推荐指数
2
解决办法
5234
查看次数

来自Fragment的带有AppCompatLibrary的getActionBar

我正在寻找使用AppCompatLibrary和API 8从Fragment获取ActionBar实例的最简单方法.

已经尝试过像

getActivity().getSupportActionBar() 
Run Code Online (Sandbox Code Playgroud)

但没有运气.

android android-appcompat android-fragments android-actionbar

7
推荐指数
1
解决办法
9273
查看次数

Android嵌套了带ActionBar的PreferenceScreen

我的Android应用程序中有一个SettingsActivity.最初没有Actionbar,所以我实现了这个:

settings_toolbar.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    app:navigationContentDescription="@string/abc_action_bar_up_description"
    android:background="?attr/colorPrimary"
    app:navigationIcon="?attr/homeAsUpIndicator"
    app:title="@string/action_settings"
    />
Run Code Online (Sandbox Code Playgroud)

SettingsActivity.java

public class SettingsActivity extends PreferenceActivity {

    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);

        LinearLayout root = (LinearLayout)findViewById(android.R.id.list).getParent().getParent().getParent();
        Toolbar bar = (Toolbar) LayoutInflater.from(this).inflate(R.layout.settings_toolbar, root, false);
        root.addView(bar, 0); // insert at top
        bar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

它工作得很好但仅适用于第一个PreferenceScreen.如果我有一个嵌套的PreferenceScreen,那么就没有ActionBar.我怎样才能实现这一点,在嵌套的PreferenceScreen上还有带后退按钮的ActionBar?

它应该与API15 +和AppCombat兼容

原帖:如何将支持库中的Action Bar添加到PreferenceActivity中?

android preferenceactivity android-actionbar

6
推荐指数
1
解决办法
3429
查看次数