我有一个带有按钮(图像)的自定义控件,它应该更新一个活动(片段)控件(大0字符串)。
也许这太简单了,但我不知道如何做,因为onClickListener按钮在自定义控件类中。哪一种是最好的方法?

自定义控件类中的侦听器是:
binding.counterSelectorViewPrevious.setOnClickListener(OnClickListener {
decreaseValue()}
fun decreaseValue() {
if (mSelectedIndex > 0) {
val newSelectedIndex = mSelectedIndex - 1
setSelectedIndex(newSelectedIndex)
}
}活动控件只是自定义控件类之外的一个TextView。
<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" />提前谢谢。
发布于 2021-01-09 15:08:40
您需要接受自定义视图中的侦听器--从活动/片段中得到的回调
像这样的东西
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)
void setupListener() {
addOnValueChangeListener(newValue -> {
findViewById(R.id.workout_length).setText("" + newValue);
});
}https://stackoverflow.com/questions/65642856
复制相似问题