Parent -> Child
Activity -> ListItem
listitem 的动作需要依靠场景的某些属性,又需要做到解耦,因此不能让ListItem拥有Activity的对象。
可以这么做。
class ListItem { public interface Properties { boolean isTouchable(); String getName(); boolean isInSky(); } protected Properties mProperties; public void setProperties(Properties p) { mProperties = p; } @Click(R.id.fly) void fly() { if (p != null && p.isInSky()) { // do fly business } }}DemoActivity implements ListItem.Properties { public boolean isTouchable() { return true; } public getName() { return DemoActivity.class.getSimpleName(); } ...}