Android DataBinding 可以使用 inner class 吗?
Can Android DataBinding use inner class?
UpdateActivity.java:
public class UpdateActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityUpdateBinding dataBinding = DataBindingUtil.setContentView(this, R.layout.activity_update);
}
interface Listener {
void onClick(View v);
}
}
activity_update.xml:
<data>
<variable
name="listener"
type="com.kycq.reader.UpdateActivity$Listener"/>
</data>
如果我设置 'listener',它总是 Errors.it 意味着我不能设置内部 class,或者我应该以其他方式设置 'listener'?
只要声明了内部 class public,您就可以使用 Android 的数据绑定库访问内部 classes。通过确保它是 public,我能够使用内部 class。而不是使用 com.kycq.reader.UpdateActivity$Listener
使用 com.kycq.reader.UpdateActivity.Listener
访问内部 class.
UpdateActivity.java:
public class UpdateActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityUpdateBinding dataBinding = DataBindingUtil.setContentView(this, R.layout.activity_update);
}
interface Listener {
void onClick(View v);
}
}
activity_update.xml:
<data>
<variable
name="listener"
type="com.kycq.reader.UpdateActivity$Listener"/>
</data>
如果我设置 'listener',它总是 Errors.it 意味着我不能设置内部 class,或者我应该以其他方式设置 'listener'?
只要声明了内部 class public,您就可以使用 Android 的数据绑定库访问内部 classes。通过确保它是 public,我能够使用内部 class。而不是使用 com.kycq.reader.UpdateActivity$Listener
使用 com.kycq.reader.UpdateActivity.Listener
访问内部 class.