减少代码量
引入Butterknife 的依赖
implementation 'com.jakewharton:butterknife:9.0.0-rc3' annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc3'
下面是官方提供的java示例
class ExampleActivity extends Activity { @BindView(R.id.user) EditText username; @BindView(R.id.pass) EditText password; @BindString(R.string.login_error) String loginErrorMessage; @OnClick(R.id.submit) void submit() { // TODO call server... } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.simple_activity); ButterKnife.bind(this); // TODO Use fields... }}
比如 注册TextView控件只需下面两行代码
@BindView(R.id.act_test_tv) TextView textView;
实现按钮点击监听
ButterKnife.bind(this); @OnClick(R.id.act_test_btn) void clickBtn1(){ //此处为监听到点击后,执行的逻辑 }
下面是测试demo的代码, 布局文件为线性布局, 垂直排列的三个组件
java代码为:
public class MainActivity extends AppCompatActivity { //注册TextView控件 @BindView(R.id.act_test_tv) TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //这句代码为使控件生效 ButterKnife.bind(this); } //用 @OnClick标识 括号内为按钮的id //然后void 一个方法名, 方法体中即为监听执行的操作 @OnClick(R.id.act_test_btn) void clickBtn1(){ Toast.makeText(this, "按钮被点击", Toast.LENGTH_SHORT).show(); textView.setText("点击事件执行完成"); } //TextView控件点击监听事件 @OnClick(R.id.act_test_tv11) void textOnClick(){ Toast.makeText(this, "文本被点击了", Toast.LENGTH_SHORT).show(); }}
下面我们来安装插件
打开Android Studio 的设置
安装完成后 重启Android Studio使插件生效
他会自动识别我们布局里已经定义了ID的控件 点击confirm