OnLongClickListener 和数据绑定 - void 无法转换为布尔值(Android、Java)

问题描述 投票:0回答:1

如何将长按监听器与数据绑定集成? 它需要一个布尔值返回。 但显然我的方法无法返回值(void)


public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        binding = LayoutTrainBaseItemBinding.inflate(inflater, container, false);


        binding.Button.setOnClickListener(view1 -> myFunction());

        binding.Button.setOnLongClickListener(view1 -> myFunction());

非常感谢您的提示

java android data-binding onlongclicklistener
1个回答
0
投票

View.OnLongClickListener 是一个 SAM 接口,其抽象方法返回

boolean
(与 View.OnClickListener 不同,其返回类型为
void
)。

如果

myFunction()
返回
boolean
,则
binding.Button.setOnLongClickListener(view1 -> myFunction());
行将起作用。

例如,以下内容将在您的情况下编译:

binding.Button.setOnLongClickListener(view1 -> {
    myFunction();
    return true;
});

至于返回值,文档是这样说的:

如果回调消耗了长点击,则为 true,否则为 false。

请考虑一下你的逻辑

© www.soinside.com 2019 - 2024. All rights reserved.