Java 为什么可以';Butterknife在匿名类中找不到视图持有者吗?
我有一个带有匿名Java 为什么可以';Butterknife在匿名类中找不到视图持有者吗?,java,android,butterknife,Java,Android,Butterknife,我有一个带有匿名基本适配器的列表视图: final ListView myList = (ListView) getActivity().findViewById(R.id.my_list); myList.setAdapter(new BaseAdapter() { 在匿名类中,我有一个视图持有者: class ViewHolder { @InjectView(R.id.textField) TextView text; public ViewHolder(View vie
基本适配器的列表视图
:
final ListView myList = (ListView) getActivity().findViewById(R.id.my_list);
myList.setAdapter(new BaseAdapter() {
在匿名类中,我有一个视图持有者:
class ViewHolder {
@InjectView(R.id.textField) TextView text;
public ViewHolder(View view) {
ButterKnife.inject(this, view);
if (text == null) {
text = (TextView)view.findViewById(R.id.textField);
}
}
}
设置断点可确认:Butterknife始终保留文本
字段null
,但直接调用findViewById
可以正常工作。如果我将ViewHolder
类移出匿名类,使其成为我的主类的成员,Butterknife工作正常。有人能解释为什么吗?尝试将ViewHolder声明为:静态类ViewHolder
我的直觉是,由于它是一个匿名类,ButterKnife不知道如何命名生成的类,因此它跳过了它。谢谢Stephan,这很有意义。