gpt4 book ai didi

android - 如何在 Android Studio 中禁用 "cannot resolve method"错误检查

转载 作者:行者123 更新时间:2023-11-29 01:25:53 25 4
gpt4 key购买 nike

当我将 Android 数据绑定(bind)框架与 ViewStub 结合使用时,我在下面有一些代码 fragment 。

ItemPostBinding binding=ItemPostBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
final Post post = mDataset.get(position);
binding.stub.getViewStub().setLayoutResource(App.getPostExtensionManager().getLayout(post.getExtension()));

我知道 binding.stub 在代码编译时会被 ViewStubProxy 替换。但是我怎么能要求 Android Studio 在编译之前忽略这里的错误呢?

(错误是 Android Studio 无法解析类 ViewStub 中的 getViewStub() 方法)

更新 1

我不知道这是不是因为我使用 android 数据绑定(bind)框架的旧方法。

classpath 'com.android.databinding:dataBinder:1.0-rc4' // project build.gradle
apply plugin: 'com.android.databinding' // module build.gradle

但是使用official data-binding guide中提到的新方法,您需要做的就是在模块的 build.gradle 文件中添加以下设置。

android {
....
dataBinding {
enabled = true
}
}

而且上面提到的错误检查没有了,你甚至可以直接使用binding.stub没有任何问题。

binding.stub.setLayoutResource(...)
binding.stub.inflate()
...

更新 2

您可以直接使用 binding.stub.someViewStubMethod() 但编译时会失败。您仍然需要使用 binding.stub.getViewStub().someMethod()。然而,就在最近,无论您通过哪种方法将数据绑定(bind)添加到项目中,错误检查都以某种方式消失了。

最佳答案

您不应该以这种方式调用 getViewStub 方法。 binding.stub 已经是您放置在布局 item_post 中的 ViewStub。你应该调用 binding.stub.setLayoutResource()

关于android - 如何在 Android Studio 中禁用 "cannot resolve method"错误检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34105350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com