gpt4 book ai didi

android - Activity 之外的 butterknife 结合

转载 作者:行者123 更新时间:2023-12-04 11:46:58 25 4
gpt4 key购买 nike

如何将绑定(bind)与 Activity 一起使用?

public class MyViewController extends BaseViewController<MyActivity> {

@BindView(R.id.view_pager)
ViewPager viewPager;

public void bindViews() {
//bind(@NonNull Object target, @NonNull Activity source)
ButterKnife.bind(this, activity);
}
}

看起来不错。但是我的应用程序在生成的代码中崩溃:
    protected InnerUnbinder(final T target, Finder finder, Object source) {
...
target.viewPager = finder.findRequiredViewAsType(source, 2131558529, "field 'viewPager'", ViewPager.class);
...
}

butterknife.internal.Finder.findRequiredViewAsType 在哪里
public final <T> T findRequiredViewAsType(Object source, int id, String who, Class<T> cls) {
View view = findRequiredView(source, id, who);
try {
return cls.cast(view);
} catch (ClassCastException e) {
String name = getResourceEntryName(view, id);
throw new IllegalStateException("View '"
+ name
+ "' with ID "
+ id
+ " for "
+ who
+ " was of the wrong type. See cause for more info.", e);
}

因为“对象源”是 Activity,而不是 View,所以我的应用程序将因 Class Cast Exception 而崩溃。

我只有一个想法如何绑定(bind) Activity 之外的 View :发送 myActivity.findViwById(R.id.activity_root_view) 作为活页夹的第二个参数(工作正常)。而且我认为,如果没有这个丑陋的代码,这种方法应该可以正常工作。你怎么看,我哪里错了?

Butterknife 8.1.0-SNAPSHOT

最佳答案

我遇到的问题是我有两个具有相同标识符的不同 View 。所以我只是重命名了它们,这就消失了。
https://github.com/JakeWharton/butterknife/issues/902

关于android - Activity 之外的 butterknife 结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37266562/

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