ButterKnife使用
来源:互联网 发布:区域经济考研知乎 编辑:程序博客网 时间:2024/04/30 20:28
本文主要介绍butterKnife1.8,之前的也都是大同小异。
功能1: 再也不用写findViewById()了.
功能2: 再也不用写setOnClickListener()了.
功能3: 组建View List: 把多个View放在一起用.
这里推荐大家一个插件Android butterknife Zelezny
在app的gradle里配置如下:
apply plugin: 'com.android.application'apply plugin: 'com.neenbedankt.android-apt'android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.example.mengdd.butterknifesample" minSdkVersion 14 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.1.1' compile 'com.jakewharton:butterknife:8.0.1' apt 'com.jakewharton:butterknife-compiler:8.0.1'}
Project:
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.0' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}allprojects { repositories { jcenter() }}一定要注意gradle中的配置,否则绑定会报错如果都配置成功了,那么我们就可以继续向下来愉快的探索了。废话不多说,先看下效果:
Activity中使用butterKnife:
@BindView(R.id.samples_list)ListView mListView;
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this);//注:必须在setContentView()以下}
上面推荐的那个插件,如果小伙伴们已经安装的话,可以把鼠标放在R.layout.activity_main上 ,
然后按你设置的快捷键就可以自动生成ButterKnife.bind(this)啦;
Fragment中使用:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = View.inflate(getActivity(), R.layout.homepage_fragment_layout, null); ButterKnife.bind(this, view);
return view;
}
Adapter中使用:
public static class ViewHolder { @BindView(R.id.lv_item) TextView lvItem; @BindView(R.id.iv_ok) ImageView ivOk; ViewHolder(View view) { ButterKnife.bind(this, view); }}
使用ButterKnife设置多个按钮监听事件:
@OnClick({R.id.tv_back, R.id.iv_details})void onClick(View view) { switch (view.getId()) { case R.id.tv_back: break; case R.id.iv_details: break; }}
View集合中的使用
可以将多个view组成一个List或数组。
@Bind({ R.id.first_name, R.id.middle_name, R.id.last_name })List<EditText> nameViews;
apply方法可以一次作用到所有的View。
ButterKnife.apply(nameViews, DISABLE);
ButterKnife.apply(nameViews, ENABLED, false);
Action 和 Setter 接口可以指定简单的行为。
static final ButterKnife.Action<View> DISABLE = new ButterKnife.Action<View>() {
@Override public void apply(View view, int index) {
view.setEnabled(false);
}};
static final ButterKnife.Setter<View, Boolean> ENABLED = new ButterKnife.Setter<View, Boolean>() {
@Override public void set(View view, Boolean value, int index) {
view.setEnabled(value);
}};
这样大家就可以愉快的使用ButterKnife了,不足之处,还请各位包含。
demo下载链接:http://download.csdn.net/download/qq_33220645/9626559
0 0
- ButterKnife使用
- butterknife使用
- ButterKnife使用
- 使用butterknife
- ButterKnife使用
- butterknife使用
- ButterKnife使用
- butterknife使用
- ButterKnife使用
- ButterKnife使用
- ButterKnife使用
- ButterKnife使用
- ButterKnife使用
- Butterknife使用
- ButterKnife使用
- ButterKnife使用
- ButterKnife 使用
- 安装ButterKnife插件与使用ButterKnife插件
- AWS平台的基本介绍
- cocos2d-x relsese note github 地址
- iOS-UI分析利器--Reveal的简单使用
- 十二章上机 练习4
- pat乙1027. 打印沙漏
- ButterKnife使用
- BNU20409 UVA11991
- jQuery append动态添加的元素添加事件没有效果
- 走出这个迷宫
- C++Primer(第四章课后习题)(程序题源代码)
- CentOS 无密码 ssh 登陆
- Hibernate 带in参数的写法
- 怎样隐藏导航状态栏NavigationBar
- iOS 隐藏导航栏底部线的两种方法