butterknife:使用起来比较容易,代码可读性强(大概记一下流程,下次忘记可以直接打开博客)
第一步:配置依赖 全局的 build.gradle(app)加上如下:
dependencies {
implementation 'com.jakewharton:butterknife:10.2.1'
}
第二步:在需要使用的activtity类
onCreatea方法里加上:
ButterKnife.bind(this);
第三步:使用注释@OnClick({R.id.[android:id的值]})
例如:如下id为say_control
<ImageView
android:visibility="gone"
android:id="@+id/say_control"
android:src="@drawable/images_said"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_marginStart="100dp"
android:layout_marginTop="450dp"/>
copy一段项目里的代码:
@OnClick({R.id.image_control, R.id.image_say, R.id.image_playback,
R.id.ptz_top_btn,R.id.ptz_bottom_btn,R.id.ptz_left_btn,R.id.ptz_right_btn})
public void onClick(View v) {
switch (v.getId()){
case R.id.image_control:
if (parts.isOnline2()){
if (ptz_control.getVisibility() == View.GONE){
ptz_control.setVisibility(View.VISIBLE);
}
} else {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "摄像头不在线无法操作!", Toast.LENGTH_SHORT).show();
}
});
}
break;
case R.id.ptz_top_btn:
linearLayoutControl.setBackground(this.getResources().getDrawable(R.drawable.ptz_bottom_sel));
sendForCameraControl("1001");
break;
case R.id.ptz_bottom_btn:
sendForCameraControl("1");
linearLayoutControl.setBackground(this.getResources().getDrawable(R.drawable.ptz_bottom_sel));
break;
case R.id.ptz_left_btn:
sendForCameraControl("2");
linearLayoutControl.setBackground(this.getResources().getDrawable(R.drawable.ptz_left_sel));
break;
case R.id.ptz_right_btn:
sendForCameraControl("3");
linearLayoutControl.setBackground(this.getResources().getDrawable(R.drawable.ptz_right_sel));
break;
case R.id.image_playback:
break;
default:
linearLayoutControl.setBackground(this.getResources().getDrawable(R.drawable.ptz_bg));
break;
}
}
之前是使用自带的OnClickListener:
步骤一:需要使用的Acitivity 实现 (implements) View.OnClickListener
步骤二:
被点击对象绑定点击事件
webView.setOnClickListener(this);
@Override
public void onClick(View v) {
//逻辑代码
}