美文网首页
Butterknife小记

Butterknife小记

作者: KenChen_939 | 来源:发表于2021-04-07 09:33 被阅读0次

    黄油刀是JakeWharton开源的一款Android视图字段方法绑定快速注解框架。可以不用findById,setOnclick等。大大提高开发效率。

    依赖

    compile 'com.jakewharton:butterknife:10.1.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
    

    Butterknife基本使用

    在Activity中绑定

    public class MainActivity extends AppCompatActivity {
    
        @BindView(R.id.btn1) Button button1;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            ButterKnife.bind(this);
        }
    }
    

    在fragment中绑定

    public class BlankFragment extends Fragment {
    
        private BlankViewModel mViewModel;
    
        public static BlankFragment newInstance() {
            return new BlankFragment();
        }
        
        private Unbinder unbinder;
        @BindView(R.id.txt1)
        TextView textView;
    
        @Override
        public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
                                 @Nullable Bundle savedInstanceState) {
            View root = inflater.inflate(R.layout.blank_fragment, container, false);
            unbinder = ButterKnife.bind(this,root);      //绑定视图
            
            return root;
        }
    
        @Override
        public void onActivityCreated(@Nullable Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
            mViewModel = new ViewModelProvider(this).get(BlankViewModel.class);
        }
    
        @Override
        public void onDestroy() {
            super.onDestroy();
            unbinder.unbind();          //视图销毁需解绑
        }
    }
    

    Butterknife具体使用

    单个组件id绑定:

    @BindView(R.id.txt1)
        TextView textView;
    

    点击事件:

    @OnClick(R.id.btn1)
        public void btn1(){
            
        }
    

    多组件同一点击事件

    @OnClick({R.id.btn2,R.id.btn3,R.id.btn4})
        public void btn2(View view){
            
            }
        }
    

    多组件多点击事件

    @OnClick({R.id.btn2,R.id.btn3,R.id.btn4})
        public void btn2(View view){
            switch (view.getId()){
                case R.id.btn2:
                    Toast.makeText(MainActivity.this,"btn2",Toast.LENGTH_SHORT).show();
                    break;
                case R.id.btn3:
                    Toast.makeText(MainActivity.this,"btn3",Toast.LENGTH_SHORT).show();
                    break;
                case R.id.btn4:
                    Toast.makeText(MainActivity.this,"btn4",Toast.LENGTH_SHORT).show();
                    break;
            }
        }
    

    列表组件的item点击事件

    @OnItemClick({R.id.listView})
        public void test(int position){
            Toast.makeText(MainActivity.this,"position:"+position,Toast.LENGTH_SHORT).show();
        }
    

    相关文章

      网友评论

          本文标题:Butterknife小记

          本文链接:https://www.haomeiwen.com/subject/oouykltx.html