我一直在研究一个相当简单的键盘应用程序,我想为它添加一些设置。我已经阅读了几个教程和更多的参考页面,而不是我在上周可以计算的内容,我希望有人能够/愿意抓住我的错误。
我的应用程序构建没有错误(只有一个关于使用折旧函数的警告),但首选项活动不会从语言和输入设置菜单启动。
到目前为止我所拥有的是什么
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个设置的列表,每个设置都取一个整数(如果需要,字符串将会执行,因为它可以转换或替换为默认值)
我意识到我的代码对于我尝试过的所有不同的东西有点混乱,但任何建议都会非常感激。
提前致谢。
答案 0 :(得分:1)
<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标签内,而不是放在子类型标签下。