首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >视图在自定义控件之外(从内部自定义控件)

视图在自定义控件之外(从内部自定义控件)
EN

Stack Overflow用户
提问于 2021-01-09 12:54:33
回答 1查看 47关注 0票数 0

我有一个带有按钮(图像)的自定义控件,它应该更新一个活动(片段)控件(大0字符串)。

也许这太简单了,但我不知道如何做,因为onClickListener按钮在自定义控件类中。哪一种是最好的方法?

自定义控件类中的侦听器是:

代码语言:javascript
复制
binding.counterSelectorViewPrevious.setOnClickListener(OnClickListener {
        decreaseValue()}

fun decreaseValue() {
    if (mSelectedIndex > 0) {
        val newSelectedIndex = mSelectedIndex - 1
        setSelectedIndex(newSelectedIndex)
    }
}

活动控件只是自定义控件类之外的一个TextView。

代码语言:javascript
复制
<TextView
        android:id="@+id/workout_length"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="0"
        android:textAlignment="textEnd"
        android:textAppearance="@style/TextAppearance.AppCompat.Display2"
        tools:text="99:99:99" />

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-09 15:08:40

您需要接受自定义视图中的侦听器--从活动/片段中得到的回调

像这样的东西

代码语言:javascript
复制
private OnValueChangeListener onValueChangeListener;
public void addOnValueChangeListener(OnValueChangeListener onValueChangeListener)
{
    this.onValueChangeListener = onValueChangeListener;
}
public void decreaseValue() {
    onValueChangeListener.onValueChange(newValue);
}

public interface OnValueChangeListener {
    void onValueChange(int newValue);
}

然后,您需要在活动/片段中的某个地方添加调用(如onCreate/onCreateView)

代码语言:javascript
复制
void setupListener() {
    addOnValueChangeListener(newValue -> {
        findViewById(R.id.workout_length).setText("" + newValue);
    });
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65642856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档