如何处理首选项(PreferenceFragment)中自定义项目的点击事件?

维克多

我为首选项创建了自定义布局,以便向其中添加新的自定义项目。我添加带有android:layout属性的布局我的自定义布局如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
    android:gravity="center_vertical"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
    android:background="?android:attr/selectableItemBackground"
    android:clipToPadding="false"
    android:baselineAligned="false">

    <include layout="@layout/image_frame"/>

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingTop="16dp"
        android:paddingBottom="16dp">

        <TextView
            android:id="@android:id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:singleLine="true"
            android:textAppearance="?android:attr/textAppearanceListItem"
            android:ellipsize="marquee"/>

        <TextView
            android:id="@android:id/summary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@android:id/title"
            android:layout_alignStart="@android:id/title"
            android:layout_gravity="start"
            android:textAlignment="viewStart"
            android:textColor="?android:attr/textColorSecondary"
            android:maxLines="10"
            style="@style/PreferenceSummaryTextStyle"/>

    </RelativeLayout>

    <ImageView
        android:id="@+id/`preference_info`"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/ic_info"
        android:layout_marginStart="16dp"
        tools:ignore="ContentDescription" />

    <LinearLayout
        android:id="@android:id/widget_frame"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:gravity="end|center_vertical"
        android:paddingStart="16dp"
        android:paddingEnd="0dp"
        android:orientation="vertical"/>

</LinearLayout>

我的新商品有preference_infoID。如何处理单击事件onPreferenceTreeClick以处理整个首选项行上的简单单击事件?

努鲁人

这从首抢自定义布局的意见没有直接的方法,你就必须创建一个扩展的自定义偏好Preferenceandroidx.preference和覆盖要么onBindView(查看:查看)方法,只有在那里你能得到的意见,保持在你的偏好的布局。

 class CustomInfoPreference(context:Context) : Preference(context){
      constructor(context: Context, attrs: AttributeSet): super(context,attrs)

      override protected fun onBindView(view:View){ 
        super(view)
      val preferenceInfo = view.findViewById<ImageView>(R.id.preference_info) 
       
       preferenceInfo.setOnClickListener{
           // Perform action!
          }
        }

     }

然后在您的preference.xml中,可以使用自定义首选项,如下所示:

<PreferenceCategory
android:title="...." >

<com.example.appname.CustomInfoPreference
        android:key="pref key"
        android:title="your pref title"
        android:summary="your pref summary"
        android:defaultValue=""
        android:layout="@layout/custom_preference_layout" />

 </PreferenceCategory>

还要签出此SO线程:Android设置自定义首选项布局

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得显示自定义项目的首选项

来自分类Dev

自定义首选项-按钮不可点击

来自分类Dev

自定义首选项-按钮不可点击

来自分类Dev

如何在首选项内创建自定义对话框首选项

来自分类Dev

Android:自定义首选项生命周期不一致的PreferenceFragment?

来自分类Dev

自定义首选项消失后如何清理

来自分类Dev

如何自定义Ubuntu Server的终端首选项?

来自分类Dev

在NetSuite中创建自定义首选项

来自分类Dev

自定义首选项中的Android自定义资源标识符

来自分类Dev

如何停止我的首选项屏幕为自定义首选项提供不同的字体大小

来自分类Dev

ComboBox项目的自定义项目模板

来自分类Dev

Android:将OnClick处理程序添加到自定义首选项布局

来自分类Dev

Android:将OnClick处理程序添加到自定义首选项布局

来自分类Dev

如何使自定义适配器中的共享首选项获取我的 ArrayList 的最新值?

来自分类Dev

从自定义首选项中保存价值

来自分类Dev

Android设置自定义首选项布局

来自分类Dev

Android首选项,自定义EditTextPreference

来自分类Dev

为什么自定义首选项不显示?

来自分类Dev

从自定义首选项访问默认值

来自分类Dev

QtCreator自定义项目的工作目录?

来自分类Dev

使用自定义项目模板在ComboBox中显示所选项目

来自分类Dev

设置首选项(在PreferenceFragment内)响应点击

来自分类Dev

设置首选项(在PreferenceFragment内)响应点击

来自分类Dev

如何从共享首选项中保存和检索自定义Ararraist

来自分类Dev

如何使用共享首选项保存自定义列表视图的复选框值

来自分类Dev

Vim:如何设置自定义文件类型的首选项?

来自分类Dev

应该如何从自定义首选项请求权限?

来自分类Dev

将自定义对象保存在共享首选项中

来自分类Dev

Android首选项屏幕中的自定义标题栏

Related 相关文章

  1. 1

    如何获得显示自定义项目的首选项

  2. 2

    自定义首选项-按钮不可点击

  3. 3

    自定义首选项-按钮不可点击

  4. 4

    如何在首选项内创建自定义对话框首选项

  5. 5

    Android:自定义首选项生命周期不一致的PreferenceFragment?

  6. 6

    自定义首选项消失后如何清理

  7. 7

    如何自定义Ubuntu Server的终端首选项?

  8. 8

    在NetSuite中创建自定义首选项

  9. 9

    自定义首选项中的Android自定义资源标识符

  10. 10

    如何停止我的首选项屏幕为自定义首选项提供不同的字体大小

  11. 11

    ComboBox项目的自定义项目模板

  12. 12

    Android:将OnClick处理程序添加到自定义首选项布局

  13. 13

    Android:将OnClick处理程序添加到自定义首选项布局

  14. 14

    如何使自定义适配器中的共享首选项获取我的 ArrayList 的最新值?

  15. 15

    从自定义首选项中保存价值

  16. 16

    Android设置自定义首选项布局

  17. 17

    Android首选项,自定义EditTextPreference

  18. 18

    为什么自定义首选项不显示?

  19. 19

    从自定义首选项访问默认值

  20. 20

    QtCreator自定义项目的工作目录?

  21. 21

    使用自定义项目模板在ComboBox中显示所选项目

  22. 22

    设置首选项(在PreferenceFragment内)响应点击

  23. 23

    设置首选项(在PreferenceFragment内)响应点击

  24. 24

    如何从共享首选项中保存和检索自定义Ararraist

  25. 25

    如何使用共享首选项保存自定义列表视图的复选框值

  26. 26

    Vim:如何设置自定义文件类型的首选项?

  27. 27

    应该如何从自定义首选项请求权限?

  28. 28

    将自定义对象保存在共享首选项中

  29. 29

    Android首选项屏幕中的自定义标题栏

热门标签

归档