小编San*_*rab的帖子

ListPreference:使用string-array作为Entry和integer-array作为Entry Values不起作用

我在settings.xml文件中使用了ListPreference.我想向用户显示3个选项列表.当用户选择"设置"中的某个选项时,出现此错误:

java.lang.NullPointerException
    at android.preference.ListPreference.onDialogClosed(ListPreference.java:264)
    at android.preference.DialogPreference.onDismiss(DialogPreference.java:381)
    at android.app.Dialog$ListenersHandler.handleMessage(Dialog.java:1228)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4424)
    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:784)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

这是ListPreference的代码:

<ListPreference
    android:entries="@array/date_alignement"
    android:entryValues="@array/date_alignement_values"
    android:key="settings_date_alignement"
    android:summary="@string/settings_date_alignement_summary"
    android:title="@string/settings_date_alignement_title" />
Run Code Online (Sandbox Code Playgroud)

以下是我用来填充条目的数组:

<string-array name="date_alignement">
    <item>"Top"</item>
    <item>"Center"</item>
    <item>"Bottom"</item>
</string-array>
<integer-array name="date_alignement_values">
    <item >0</item>
    <item >1</item>
    <item >2</item>
</integer-array>
Run Code Online (Sandbox Code Playgroud)

在我的onSharedPreferenceChanged中,我以这种方式使用这些值:

@Override
public void onSharedPreferenceChanged(
            SharedPreferences sharedPreferences, String key) {          

        //Text
        mAlignment =  mPrefs.getInt(PREF_ALIGNMENT, 1);
        switch (mAlignment) {
        case 0:
            offsetY = mHeight/3.0f;
            break;

        case 2:
            offsetY = mHeight*2.0f/3.0f;
            break; …
Run Code Online (Sandbox Code Playgroud)

android listpreference

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

在Android Studio布局设计预览中选择目标API

我的应用程序针对API 17,但最小Sdk版本是8.在布局设计预览页面中,我可以看到我的布局如何出现在API 17版本上,但如果我点击API选择器下拉菜单,我无法选择任何其他API级别.显然,我可以在2.3 Android版本中运行我的应用程序,在真实设备上我可以看到结果,但有没有办法在设计预览页面中进行测试?

我的清晰片段:

    <uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />
Run Code Online (Sandbox Code Playgroud)

来自Android Studio的小屏幕

api android android-studio

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

“覆盖其他应用程序”更改侦听器?

在我的应用程序中,我需要知道用户何时授予“在其他应用程序上绘制”权限。有办法知道吗?由于我只能将用户发送到设置页面以使用 Settings.ACTION_MANAGE_OVERLAY_PERMISSION 意图操作来启用它,因此我期望系统广播或类似的内容。

android

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

如何列出管理电话,如Skype或Viber

当用户通过拨号器或联系人进行电话呼叫时,我希望将其列为可以管理它的应用程序之一,就像Skype或Viber或其他手机应用程序一样.

我尝试了很多不同的解决方案,比如在清单文件的接收器中添加以下intent-filter:

        <intent-filter>
            <action android:name="android.intent.action.CALL_BUTTON" />
            <action android:name="android.intent.action.CALL" />
            <action android:name="android.intent.action.DIAL" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="tel" />
            <data android:scheme="dial" />
        </intent-filter>
Run Code Online (Sandbox Code Playgroud)

stackoverflow上关于它的所有问题对我没有帮助; 它们含糊不清,不起作用.

编辑:尝试将intent-filter也放在activity manifest标签中.结果相同.我也尝试过使用CALL_PRIVILEGED操作,即使它不应该被第三方应用程序使用:

        <intent-filter>
            <action android:name="android.intent.action.CALL_PRIVILEGED"/>
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="tel" />
        </intent-filter>
Run Code Online (Sandbox Code Playgroud)

android

5
推荐指数
0
解决办法
361
查看次数

如何在ICS +中使用Roboto condesed(或thin)字体?

我找不到设置Roboto浓缩(瘦)而不是默认值的方法.可能吗?

fonts android

4
推荐指数
1
解决办法
7079
查看次数

如何自定义快速滚动预览字母

我需要使用自定义背景资源自定义快速滚动字母预览(屏幕截图中的大M),但我找不到任何有关它的文档.你能帮我吗?

在此输入图像描述

customization android fastscroll

4
推荐指数
1
解决办法
2572
查看次数