在应用程序的首选项片段中,我有一个自定义首选项(这是一个滑块视图首选项)。功能运作良好,但我无法使首选项的外观与其他首选项相匹配。
所有搜索都指向使用style="?android:textAppearanceLarge",但是标题字体比其余首选项大得多,并且颜色也不匹配。
此外,整个首选项视图上的填充似乎也不正确。我尝试使用style="?android:preferenceStyle,但绝对没有任何效果。该应用程序使用AppCompat.Light.DarkActionBar主题。这是它的样子。显然,这不好-我需要匹配其他首选项的样式。
因此,问题是如何匹配首选项布局的样式以在标题上具有正确的填充和正确的字体?
更新:经过进一步研究后,我得到了与匹配的标题样式style="?attr:textAppearanceMedium"。我仍在寻找匹配填充的方法。
我的应用程序在 res/xml/preferences.xml 中有以下代码:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Wi-Fi settings">
<EditTextPreference
android:key="pref_voice_threshold_top"
android:title="@string/title_pref_voicetopthreshold"
android:dialogTitle="@string/dialog_title_pref_voicetopthreshold"
android:defaultValue="20"
android:inputType="number"/>
</PreferenceCategory>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
我想知道我是否可以在代码中使用此首选项,以便我可以通过下载 xml 文件来更新它?
因此,我目前在 PreferenceActivity 中显示上述首选项,效果很好,但是我希望能够通过每周从互联网下载新设置来更新设置。
所以我的问题是如何在代码中打开此首选项并将其值设置为新下载的值?
我有一个带有EditTextPreference的首选项屏幕.如何设置提示
或者在xml中
android:hint
Run Code Online (Sandbox Code Playgroud)
或者像代码一样
setHint(int), setHint(CharSequence hint)
Run Code Online (Sandbox Code Playgroud)
在EditText字段上的EditTextPreference上?我认为它就像在EditText上,但我没有找到这样的东西.谢谢.
如何制作铃声活动(总是出现在设置中),以便用户可以从系统铃声中选择她的铃声我用Google搜索但我没有找到完整的教程,我真的很困惑,请给我教程或一些代码.
此外,如果我希望用户在我的应用程序中选择通知的特殊铃声,我应该使用共享偏好还是首选项?
我已经做了菜单:
// Menu Code Part#2
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.about:
startActivity(new Intent(this, About.class));
return true;
case R.id.help:
startActivity(new Intent(this, Help.class));
return true;
case R.id.setting:
startActivity(new Intent(this, Setting.class));
return true;
default:
return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud) 我有PrefActivity,当用户更改列表首选项中的任何按钮时,我使用OnChange Listener进行祝酒.但现在我有2个问题:1,第一次更改用户未显示的选项吐司2之后,用户永远改变prefrences,列表的值时不会更新,并且始终设置第二个值.
这是我的代码:
public class PrefsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener{
private ListPreference myPreference;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(this);
}
public void onSharedPreferenceChanged(SharedPreferences arg0, String key) {
ListPreference lp = (ListPreference) findPreference("blocktype");
lp.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
// TODO Auto-generated method stub
Toast.makeText(PrefsActivity.this, "second", Toast.LENGTH_LONG).show();
return false;
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
什么是
Preference类有一个名为getExtras()的方法.
它可能或可能与Preference意图无关,但Extras可以直接使用intent获取和放置.
在Preference类中没有putExtra/s()方法,那么...
getExtras()的目的是什么?使用哪种情景剧?