相关疑难解决方法(0)

如何向PreferenceScreen添加按钮

有没有办法在首选项屏幕的底部添加一个按钮,并在滚动时使它们正常工作?

android android-preferences

106
推荐指数
4
解决办法
9万
查看次数

首选项屏幕显示文本块

我正在尝试创建一个只有一个关于,联系和合法选项的首选项屏幕,所有这些选项在单击时只显示单独页面中的文本模糊和图标,没有shared preferences或任何内容.

我无法理解层次结构以显示文本.我希望这个流程是:settings -> about -> the about text

目前我有这个,它给了我类别和选项,但我不知道该怎么做才能显示新文本.

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <PreferenceCategory
            android:title="Info">
        <Preference android:title="About"/>


    </PreferenceCategory>
...
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

我不知道使用什么选项来将可点击进入textview.

android android-preferences preferencescreen

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

Android首选项片段文本颜色

我想更改android偏好片段中的文本颜色.我目前正在使用自定义主题来更改复选框图像,背景,onClick突出显示,这一切都很有效...除了文本颜色.我不想使用默认主题,我想拥有自己的主题,所以它看起来我想要的只是改变文本颜色,有人可以帮助.

styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="selectedTextStyle">  
        <item name="android:textSize">18sp</item>
    </style>
    <style name="buttonTextStyle">  
        <item name="android:textSize">20sp</item>
    </style>
    <style name="PreferencesTheme" >
        <item name="android:windowBackground">@drawable/lists_background</item>
        <item name="android:listViewStyle">@style/listViewPrefs</item>
        <item name="android:checkboxStyle">@style/MyCheckbox</item>

    </style>
    <style name="MyTextAppearance" parent="@android:style/TextAppearance">
        <item name="android:textColor">@color/black</item>
      </style>
    <style name="listViewPrefs" parent="@android:Widget.ListView">
        <item name="android:listSelector">@layout/list_selector_master</item>
        <item name="android:textAppearance">@style/MyTextAppearance</item>
    </style>
    <style name="MyCheckbox" parent="android:Widget.CompoundButton.CheckBox">
        <item name="android:button">@drawable/btn_check</item>
    </style>

</resources>
Run Code Online (Sandbox Code Playgroud)

表现:

        <activity
            android:name="com.package.SettingsActivity"
            android:theme="@style/PreferencesTheme"
            android:configChanges="keyboard|orientation" >
        </activity>
Run Code Online (Sandbox Code Playgroud)

活动:

import android.app.Activity;
import android.os.Bundle;
import android.preference.PreferenceFragment;

public class SettingsActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Display the fragment as …
Run Code Online (Sandbox Code Playgroud)

android android-preferences android-theme

19
推荐指数
3
解决办法
2万
查看次数

自定义PreferenceScreen的布局

我的要求

注意:我需要支持Android API 15及更高版本.

在我的PreferenceFragment中,我正在将PreferenceScreen动态添加到PreferenceCategory.

PreferenceScreen as = mgr.createPreferenceScreen(context);
as.setTitle(name); 
myCategory.addPreference(as);
Run Code Online (Sandbox Code Playgroud)

当设置活动呈现时,这些PreferenceScreens仅在其行的标题中呈现,请参见下图. PreferenceScreen在设置活动中显示

我想自定义此行中显示的内容.理想情况下,我希望在下面有一个摘要标题,标题/摘要左侧的图标和右侧的某些行上的图标.请参阅下面的模型图像.

期望的我的偏好屏幕的渲染

PreferenceScreen.setWidgetLayoutResource(int widgetLayoutResId)

我知道我可以使用"setWidgetLayoutResource"在我的设置活动中使用以下代码在行布局的右侧添加一个图标(以及带有"setSummary"的摘要)

PreferenceScreen as = mgr.createPreferenceScreen(context);
as.setTitle(name); 
as.setSummary(summary);
as.setWidgetLayoutResource(R.layout.as_widget);
myCategory.addPreference(as);
Run Code Online (Sandbox Code Playgroud)

其中"as_widget.xml"是

<?xml version="1.0" encoding="utf-8"?>
<ImageView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_action_favorite"/>
Run Code Online (Sandbox Code Playgroud)

这将产生如下的UI 使用setWidgetLayoutResource进行布局

这让我更接近我想要的但仍然不完全是我想要的(错过了行开头的图标).

PreferenceScreen.setLayoutResource(int layoutResId)

我相信如果我使用它,那么我可以控制整行的渲染.我在stackoverflow上看过这个例子,比如

根据我的理解,您指定的布局文件必须具有以下内容

  • 它的根视图的id为"@android:id/widget_frame"
  • 一个id为android的视图:id ="@ + android:id/title"(这是放置PreferenceScreen.setTitle中指定的字符串的地方)
  • id为android的视图:id ="@ + android:id/summary"(这是放置PreferenceScreen.setSummary中指定的字符串的位置)

然而,当我尝试这样做时,Android Studio突出显示"@ + android:id/summary",错误为"无法解析符号'@ + android:id/summary'.当应用程序运行时,我的行呈现为完全空白.

我的java是

PreferenceScreen as = mgr.createPreferenceScreen(context);
as.setTitle(name); 
as.setSummary(summary);
as.setLayoutResource(R.layout.as_row_layout);
myCategory.addPreference(as);
Run Code Online (Sandbox Code Playgroud)

我的布局是

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/widget_frame"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:gravity="center_vertical"
    android:paddingRight="?android:attr/scrollbarSize">

    <ImageView
        android:id="@+id/icon1"
        android:src="@drawable/ic_action_email" …
Run Code Online (Sandbox Code Playgroud)

layout android customizing preference preferencescreen

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

我的设置活动的布局文件在哪里?

我用这个Settings Activity模板在android studio中创建了一个新的活动.创建后,我无法在任何地方找到活动的布局文件.我在哪里可以找到布局文件?如果Settings Activity模板没有布局文件,我该如何更改其内容?

Android studio还创建了一个名为的新文件夹xml,这与设置活动有什么关系吗?

android android-layout android-activity android-studio

9
推荐指数
1
解决办法
6329
查看次数

如何在Android的PreferenceScreen中使用textview?

我想在PreferenceScreen中使用textview,它是一个更长的文本,解释了一些特定的设置.如果我在某些版本上使用summary或​​title属性,它会被奇怪地格式化,无法正确显示等等(文本相当长).

因此我发现使用textview是最好的,是否可以创建自定义设置元素?

java android

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

在ListPreference摘要上显示图像

我正在尝试添加图像ListPreference,但我实现了这一点,但在Android API等级15或更高版本上它无效.我做错了什么?我在2.2和2.3.3上测试过这段代码,一切正常!这是我的代码.

private void addSummary(Drawable d, Spannable sp) {

    d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());

    SpannableStringBuilder builder = new SpannableStringBuilder();
    builder.append(Const.IMAGE_ANCHOR);
    builder.append("  ");
    builder.append(sp);
    setTextColor(builder);
    ImageSpan imageSpan = new ImageSpan(d);
    int end = Const.IMAGE_ANCHOR.length();

    builder.setSpan(imageSpan, 0, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    listPreference.setSummary(builder);

}
Run Code Online (Sandbox Code Playgroud)

android listpreference

5
推荐指数
1
解决办法
1841
查看次数

自定义 EditTextPreference

我想自定义我的EditTextPreference,所以我TextView在我的EditTextPreference.

这是我的代码:

<EditTextPreference
   android:key="alert_planed_edittext_preference"
   android:title="@string/alert_planed_edittext_preference"
   android:summary="@string/alert_planed_summary_edittext_preference"
   android:dialogTitle="@string/alert_planed_dialog_title_edittext_preference" />
Run Code Online (Sandbox Code Playgroud)

这就是我在我的应用程序中得到的:

在此处输入图片说明

我想自定义我的 EditTextPreference,这就是我想要的:

在此处输入图片说明

我想在右边添加数字,我可以这样做吗?

当我点击我得到这个对话框:

在此处输入图片说明

我希望用户只能选择数字,我该怎么做?

编辑:我找到了第二个问题的解决方案:

<EditTextPreference
                android:key="alert_planed_edittext_preference"
                android:title="@string/alert_planed_edittext_preference"
                android:summary="@string/alert_planed_summary_edittext_preference"
                android:dialogTitle="@string/alert_planed_dialog_title_edittext_preference"
                android:numeric="integer" />
Run Code Online (Sandbox Code Playgroud)

android preferences edittextpreference

5
推荐指数
1
解决办法
6441
查看次数