1

偏好活动因调用而膨胀

addPreferencesFromResource(R.xml.preferences);

这里是preferences.xml:

<PreferenceCategory android:title="@string/pref_categ_update_label">
    <ListPreference android:title="@string/pref_label"
        android:key="update_interval" 
        android:entries="@array/update_names" android:entryValues="@array/update_values" />


</PreferenceCategory>


<PreferenceCategory android:title="@string/pref_categ_evernote_label">

    <EditTextPreference android:title="@string/pref_dialog_edit_username"
        android:key="prefUsername" 
        android:positiveButtonText="@string/save_pref"
        android:negativeButtonText="@string/cancel_pref"  />

    <EditTextPreference android:title="@string/pref_dialog_edit_password"
        android:key="prefPassword"  
        android:positiveButtonText="@string/save_pref"
        android:negativeButtonText="@string/cancel_pref"             
        android:password="true" />

</PreferenceCategory>

一切看起来都不错,但 EditTextPreference 条目(2 和 3)旁边有向下箭头图标,就像 ListPreference (1) 一样。为什么会这样?我怎样才能删除这些图标,因为它们看起来无关紧要?

截图在这里:http: //i.stack.imgur.com/BZUr7.png

4

4 回答 4

4

如果您不想要首选项中的箭头,请使用 -

**android:widgetLayout="@null"**

如果你想在右手边提供一些自定义图像,那么使用 -

**android:widgetLayout="@layout/pref_custom_image"**

其中,pref_custom_image.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_launcher"
/>
于 2012-06-22T11:15:18.680 回答
0

我不是 100% 确定这是否是安全和好的方法,但如果你像这样扩展 EditTextPreference 类,你可以删除图标:

通过覆盖该getView()方法,您可以更改列表中绘制的内容。我正在使用原始视图并搜索所有图像(递归)并将它们更改visibilityGONE.

public class EditTextPreferenceNoImage extends EditTextPreference {
public EditTextPreferenceNoImage(Context context, AttributeSet attrs,
        int defStyle) {
    super(context, attrs, defStyle);
}

public EditTextPreferenceNoImage(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public EditTextPreferenceNoImage(Context context) {
    super(context);
}

@Override
public View getView(View convertView, ViewGroup parent) {
    View view = super.getView(convertView, parent);
    changeImagesVisibility(view, View.GONE);
    return view;
}

private void changeImagesVisibility(View view, int visibility) {
    log.debug("child:" + view.getClass());
    if (view instanceof ViewGroup) {
        ViewGroup ll = (ViewGroup) view;
        for (int i = 0; i < ll.getChildCount(); i++) {
            changeImagesVisibilitz(ll.getChildAt(i), visibility);
        }
    } else if (view instanceof ImageView) {
        log.debug("visiblitz : " + (visibility == View.VISIBLE));
        ImageView image = (ImageView) view;
        image.setVisibility(visibility);
    }

}}
于 2011-11-30T18:20:16.153 回答
0

如果有人遇到同样的问题,我找到了一个超级简单的解决方案来摆脱偏好项目上的箭头(从技术上讲,它摆脱了那里会出现的任何东西——箭头图像复选框等)。在您的preferences.xml 中,将Widget Layout 的值设置为“@null”。

于 2012-06-04T18:58:06.613 回答
0

那里的箭头让您知道单击该首选项会将您带到其他地方。在它的情况下,ListPreference它表明它转到另一个“屏幕”,在它的情​​况下,EditTextPreference它表明它将弹出一个对话框。如果你不喜欢它,你可以为它创建一个新样式并使用它。

于 2010-09-29T13:48:34.757 回答