android,如果想通过注解来注册onclick事件该怎么做?

我是新手,看到butterknife可以实现

@OnClick(R.id.submit) void submit() {
    // TODO call server...
  }

粗略看了源代码,说实话,比较复杂没看懂。
如果我只是单单的想实现这个注解的功能该怎么做?

阅读 4.7k
1 个回答

public class AboutActivity extends BaseActivity implements View.OnClickListener {

@InjectView(R.id.returnBlack)
ImageView returnIv;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
ButterKnife.inject(this);
}

@Override
protected void onResume() {
super.onResume()
}

@Override
protected void onPause() {
super.onPause();
}

@OnClick(R.id.returnBlack)
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.returnBlack:
finish();
break;
}
}
}

假如你想要写个注解onTest

@Target(METHOD)
@Retention(CLASS)
@ListenerClass(
targetType = "android.view.View",
setter = "", //set监听,列如setOnClickListener
type = "android.view.View.xxxxListener", //一个listener类
method = @ListenerMethod(
name = "onTest",
parameters = "android.view.View"
)
)
public @interface OnTest {
/** View IDs to which the method will be bound. */
int[] value();
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题