Butterknife
依赖
apply plugin: 'com.android.application' android { compileSdkVersion 30 buildToolsVersion "30.0.0" defaultConfig { applicationId "" minSdkVersion 24 targetSdkVersion 30 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.0.2' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' //绑定控件 implementation 'com.jakewharton:butterknife:10.0.0' annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0' }
Activity使用
public class MainActivity extends AppCompatActivity { //获取控件 @BindView(R.id.name) EditText name; @BindView(R.id.btn) Button btn; @BindView(R.id.txt) TextView txt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //绑定处理 ButterKnife.bind(this); } //按钮点击事件处理 @OnClick(R.id.btn) public void onViewClicked() { if (TextUtils.isEmpty(name.getText().toString().trim())){ return; } if (name.getText().toString().trim().length() < 6){ return; } txt.setText(name.getText()); } }
Fragment使用:
public class BlankFragment extends Fragment { @BindView(R.id.txt) TextView txt; @BindView(R.id.btn) Button btn; Unbinder unbinder; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View inflate = inflater.inflate(R.layout.fragment_blank, container, false); unbinder = ButterKnife.bind(this, inflate); return inflate; } @Override public void onDestroyView() { super.onDestroyView(); unbinder.unbind(); } @OnClick(R.id.btn) public void onViewClicked() { } }