Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何向android输入法编辑器应用程序添加简单的首选项屏幕_Java_Android_Xml_Settings_Ime - Fatal编程技术网

Java 如何向android输入法编辑器应用程序添加简单的首选项屏幕

Java 如何向android输入法编辑器应用程序添加简单的首选项屏幕,java,android,xml,settings,ime,Java,Android,Xml,Settings,Ime,我一直在开发一个相当简单的键盘应用程序,我想给它添加一些设置。在过去的一周里,我已经阅读了好几篇教程和超过我所能计数的参考页,我希望这里的人能够/愿意发现我的错误 我的应用程序生成时没有错误(只有一个关于使用折旧功能的警告),但preferences活动不会从language and input settings(语言和输入设置)菜单启动 这是我到目前为止得到的 AndroidManifest.xml上应用程序标记的内容 <service android:name=".Simple

我一直在开发一个相当简单的键盘应用程序,我想给它添加一些设置。在过去的一周里,我已经阅读了好几篇教程和超过我所能计数的参考页,我希望这里的人能够/愿意发现我的错误

我的应用程序生成时没有错误(只有一个关于使用折旧功能的警告),但preferences活动不会从language and input settings(语言和输入设置)菜单启动

这是我到目前为止得到的

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>
在这一点上,我不需要对标题进行任何花哨的处理,也不需要将其分解成更小的片段(除非这是使其工作所必需的)。我目前的目标是创建一个包含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”放在输入法标记内而不是子类型标记下。

在输入法标记中声明活动为我解决了这个问题,tnx
<?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>
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");
    }
}
    <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>