繁体   English   中英

如何将简单的首选项屏幕添加到android输入法编辑器应用

[英]How to add a simple preferences screen to an android input method editor app

我一直在开发一个相当简单的键盘应用程序,我想为其添加一些设置。 我上周已经看完了几本教程和更多参考书,而我希望这里的某人能够/愿意发现我的错误。

我的应用程序的构建没有错误(只有一个关于使用折旧功能的警告),但是偏好设置活动不会从语言和输入设置菜单中启动。

这是我到目前为止的

AndroidManifest.xml上的应用程序标签的内容

<service
    android:name=".SimpleIME"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_INPUT_METHOD">
    <meta-data
        android:name="android.view.im"
        android:resource="@xml/method" />

    <intent-filter>
        <action android:name="android.view.InputMethod" />
    </intent-filter>
</service>

<activity
    android:name=".keyboardPrefsActivity"
    android:label="@string/title_activity_keyboard_prefs">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
    </intent-filter>
</activity>

method.xml

<?xml version="1.0" encoding="utf-8"?>
<input-method xmlns:android="http://schemas.android.com/apk/res/android">
    <subtype
        android:label="@string/subtype_en_US"
        android:imeSubtypeLocale="en_US"
        android:imeSubtypeMode="keyboard"
        android:settingsActivity="com.dev.tompk.learnmorsekeyboard.keyboardPrefsActivity"/>
</input-method>

preferences.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    android:key="lmk_settings"
    android:title="Learn Morse Keyboard Settings">
    <EditTextPreference
        android:key="MorsePulseRate"
        android:title="@string/morse_pulse_rate_pref_title"
        android:summary="@string/morse_pulse_rate_pref_summary"
        android:numeric="integer"
        android:maxLength="3"
        android:defaultValue="100"
        />
</PreferenceScreen>

keyboardPrefsActivity.java

package com.dev.tompk.learnmorsekeyboard;
import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;

public class keyboardPrefsActivity extends PreferenceActivity {

    private EditTextPreference morsePulseRate;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
        morsePulseRate = (EditTextPreference)findPreference("MorsePulseRate");
    }
}

在这一点上,我不需要花哨的标题或将其分成较小的片段(除非有必要使其工作)。 我当前的目标是列出2个可能3个设置的列表,每个设置取一个整数(字符串将在必要时使用,因为可以将其转换或替换为默认值)

我意识到我的代码对我尝试过的所有不同内容都有些混乱,但是任何建议都会不胜感激。

提前致谢。

    <activity
        android:name=".SettingsActivity"
        android:screenOrientation="portrait"
        android:theme="@style/Theme.AppCompat.DayNight.DarkActionBar"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
        </intent-filter>
    </activity>

我知道这个答案可能对您来说有点晚了,但是有人可能想要这个答案。 尝试像在常规活动中一样向设置活动中添加“ android:theme =“”“,这对我来说解决了问题。

您也可以尝试将'android:settingsActivity'放置在input-method标记内,而不是subtype标记下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM