android中是否有一种方法可以通过xml android:id将字段设置为自定义视图

安德鲁

例如,我有一个自定义按钮,想将其连接到SeekBar:

public class SeekBarButton extends ImageButton {

    SeekBar seekBar;

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

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

    public SeekBarButton(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public void setSeekBar(SeekBar seekBar) {
        this.seekBar = seekBar;
    }

    public SeekBar getSeekBar() {
        return seekBar;
    }
}

我可以在代码中做到这一点:

sbb = (SeekBarButton) rootView.findViewById(R.id.minus_red);
sbRed = (SeekBar) rootView.findViewById(R.id.sbRed);
sbb.setSeekBar(sbRed);

但是8个按钮会提供很多样板,而我想要类似的东西:

    <com.whatever.views.SeekBarButton
        ...
        whatToPutHere:seekbar="@+id/sbRed"  // like this? whatToPutHere?
        android:id="@+id/minus_red" />

    <SeekBar
        android:id="@+id/sbRed"

        ... />
保罗·伯克

最简单的方法是创建一个ViewGroup同时包含Button的自定义Seekbar如果由于某种原因您不能这样做,请使用以下解决方案:

有一些步骤可以使这项工作。首先,您必须定义一个自定义XML属性,然后可以引用和使用它。

编辑(或创建)res/values/attrs.xml添加:

<declare-styleable name="SeekBarButton">
    <attr name="seekbarId" format="integer" />
</declare-styleable>

然后,在中SeekBarButton,从构造函数中调用它:

private void init(Context context, AttributeSet attrs, int defStyleAttr) {
    if (attrs != null) {
        TypedArray a = context.obtainStyledAttributes(attrs,
                R.styleable.SeekBarButton, defStyleAttr, 0);
        mSeekbarId = a.getResourceId(R.styleable.SeekBarButton_seekbarId, 0);
        a.recycle();
    }
}

最后,在ViewGroup布局文件的根目录中,添加

xmlns:app="http://schemas.android.com/apk/res-auto"

然后,

<com.whatever.views.SeekBarButton
    android:id="@+id/minus_red"
    app:seekbarId="@+id/sbRed"
    ... />

<SeekBar
    android:id="@+id/sbRed"
    ... />

注意您将需要调用((ViewGroup) getParent()).findViewById(mSeekbarId)inSeekBarButton来实例化SeekBar,但是getParent()SeekBarButton构造函数中将为null 因此,请延迟findViewById()直到需要SeekBar

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

android中是否有一种方法可以通过xml android:id将字段设置为自定义视图

来自分类Dev

有没有一种方法可以通过eclipse中的android应用程序调试http请求?

来自分类Dev

在Swift中是否有一种方法可以将泛型约束为一种类型或另一种类型?

来自分类Dev

在R中,是否有一种方法可以将向量指定为* literal *?

来自分类Dev

python数据框中是否有一种方法可以从日期范围填充自定义星期数?

来自分类Dev

有没有一种方法可以通过XML属性为浮动操作按钮设置波纹颜色?

来自分类Dev

有没有一种方法可以在Android中创建预览滑块

来自分类Dev

Java中是否有一种方法可以将JTextField的位置设置为文本的开头?

来自分类Dev

有没有一种方法可以通过JIRA中的发布功能来更新自定义字段?

来自分类Dev

在android studio中,有一种方法可以禁用模块而不删除它吗?

来自分类Dev

有没有一种方法可以通过Javascript检测是否在(Android \ iOS)设备上安装了特定应用程序?

来自分类Dev

C#中是否有一种方法可以将HTML和XML中具有特殊含义的字符仅转换为实体?

来自分类Dev

有没有一种方法可以在单击按钮时给出xml的默认视图,从而将片段加载到android的容器中

来自分类Dev

tablesorter中是否有一种方法可以过滤以仅选择字段为空的行?

来自分类Dev

Android中是否有一种方法可以模拟活动(例如“不保留活动”)中已销毁/收集的android.app.Application(对象)?

来自分类Dev

有没有一种方法可以通过列表来确定Django表单中的字段?

来自分类Dev

有没有一种方法可以从通过循环创建的表中设置$ _SESSION变量

来自分类Dev

有没有一种方法可以通过Java中的VFS设置远程文件夹的权限?

来自分类Dev

有没有一种方法可以将文件压缩为自定义扩展名?

来自分类Dev

有没有一种方法可以将文件压缩为自定义扩展名?

来自分类Dev

有没有一种方法可以将通过http下载的图像直接加载到内存中?

来自分类Dev

在较少的CSS中,是否有一种方法可以将选定的Elments ID或类传递给Mixin?

来自分类Dev

在Android Studio中使用MultiDex功能时,是否有一种方法可以限制主dex文件中的方法数量

来自分类Dev

MySQL中是否有一种方法可以对变量Universe中的特定字段执行“轮循” ORDER BY?

来自分类Dev

有没有一种方法可以在Android中创建stackoverfow“标签” EditText / Input字段?

来自分类Dev

有没有一种方法可以在Android中创建stackoverfow“标签” EditText / Input字段?

来自分类Dev

有没有一种方法可以将XML.appendChild函数存储在变量中?

来自分类Dev

有没有一种方法可以将JSON转换为C ++中的XML?

来自分类Dev

有没有一种方法可以通过自定义HTTP标头获取推荐网址?

Related 相关文章

  1. 1

    android中是否有一种方法可以通过xml android:id将字段设置为自定义视图

  2. 2

    有没有一种方法可以通过eclipse中的android应用程序调试http请求?

  3. 3

    在Swift中是否有一种方法可以将泛型约束为一种类型或另一种类型?

  4. 4

    在R中,是否有一种方法可以将向量指定为* literal *?

  5. 5

    python数据框中是否有一种方法可以从日期范围填充自定义星期数?

  6. 6

    有没有一种方法可以通过XML属性为浮动操作按钮设置波纹颜色?

  7. 7

    有没有一种方法可以在Android中创建预览滑块

  8. 8

    Java中是否有一种方法可以将JTextField的位置设置为文本的开头?

  9. 9

    有没有一种方法可以通过JIRA中的发布功能来更新自定义字段?

  10. 10

    在android studio中,有一种方法可以禁用模块而不删除它吗?

  11. 11

    有没有一种方法可以通过Javascript检测是否在(Android \ iOS)设备上安装了特定应用程序?

  12. 12

    C#中是否有一种方法可以将HTML和XML中具有特殊含义的字符仅转换为实体?

  13. 13

    有没有一种方法可以在单击按钮时给出xml的默认视图,从而将片段加载到android的容器中

  14. 14

    tablesorter中是否有一种方法可以过滤以仅选择字段为空的行?

  15. 15

    Android中是否有一种方法可以模拟活动(例如“不保留活动”)中已销毁/收集的android.app.Application(对象)?

  16. 16

    有没有一种方法可以通过列表来确定Django表单中的字段?

  17. 17

    有没有一种方法可以从通过循环创建的表中设置$ _SESSION变量

  18. 18

    有没有一种方法可以通过Java中的VFS设置远程文件夹的权限?

  19. 19

    有没有一种方法可以将文件压缩为自定义扩展名?

  20. 20

    有没有一种方法可以将文件压缩为自定义扩展名?

  21. 21

    有没有一种方法可以将通过http下载的图像直接加载到内存中?

  22. 22

    在较少的CSS中,是否有一种方法可以将选定的Elments ID或类传递给Mixin?

  23. 23

    在Android Studio中使用MultiDex功能时,是否有一种方法可以限制主dex文件中的方法数量

  24. 24

    MySQL中是否有一种方法可以对变量Universe中的特定字段执行“轮循” ORDER BY?

  25. 25

    有没有一种方法可以在Android中创建stackoverfow“标签” EditText / Input字段?

  26. 26

    有没有一种方法可以在Android中创建stackoverfow“标签” EditText / Input字段?

  27. 27

    有没有一种方法可以将XML.appendChild函数存储在变量中?

  28. 28

    有没有一种方法可以将JSON转换为C ++中的XML?

  29. 29

    有没有一种方法可以通过自定义HTTP标头获取推荐网址?

热门标签

归档