【转】ButterKnife基本使用--不错
原文网址:http://www.cnblogs.com/mengdd/archive/2015/06/23/4595973.html
配置:
compile 'com.jakewharton:butterknife:6.1.0'
功能1: 再也不用写findViewById()啦.
mTextView1 = (TextView) findViewById(R.id.butter_text_view_1);
@InjectView(R.id.butter_text_view_2)
TextView mTextView2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.demo_butter_knife); //using butter knife
ButterKnife.inject(this);
}

ButterKnife in Fragment

public class SimpleFragment extends Fragment { @InjectView(R.id.fragment_text_view)
TextView mTextView; public SimpleFragment() {
} @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_simple, container, false);
ButterKnife.inject(this, view);
mTextView.setText("TextView in Fragment are found!");
return view;
}
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.person_item_layout, null);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
Person person = getItem(position);
if (null != person) {
holder.name.setText(person.getName());
holder.age.setText(String.valueOf(person.getAge()));
holder.location.setText(person.getLocation());
holder.work.setText(person.getWork());
} return convertView;
} static class ViewHolder {
@InjectView(R.id.person_name)
TextView name;
@InjectView(R.id.person_age)
TextView age;
@InjectView(R.id.person_location)
TextView location;
@InjectView(R.id.person_work)
TextView work; public ViewHolder(View view) {
ButterKnife.inject(this, view);
}
}

功能2: 再也不用写setOnClickListener()啦.
finishButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
@OnClick(R.id.basic_finish_a_button)
void finishA(View view) {
finish();
}
//you can bind listener to multiple views
@OnClick({R.id.button_enable, R.id.button_disable, R.id.button_alpha_0, R.id.button_alpha_1})
void editViewsClicked() {
Toast.makeText(this, "You click the Button!", Toast.LENGTH_SHORT).show();
}
功能3: 组建View List: 把多个View放在一起用
@InjectViews({R.id.label_first_name, R.id.label_middle_name, R.id.label_last_name})
List<TextView> labelViews; @InjectViews({R.id.first_name, R.id.middle_name, R.id.last_name})
List<EditText> nameViews;
public static <T extends View> void apply(List<T> list, Action<? super T> action)
public static <T extends View, V> void apply(List<T> list, Setter<? super T, V> setter, V value)
public static <T extends View, V> void apply(List<T> list, Property<? super T, V> setter, V value)
其他实用方法
1.注入重置(Injection Rest):
2.选择性注入(Optional Injection):
3.多方法的listener(Multi-method Listeners):

mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
} @Override
public void onNothingSelected(AdapterView<?> parent) {
}
});

@OnItemSelected(R.id.my_spinner)
//default callback : ITEM_SELECTED
void onItemSelected(int position) {
Toast.makeText(this, "position: " + position, Toast.LENGTH_SHORT).show();
}
@OnItemSelected(value = R.id.my_spinner, callback = OnItemSelected.Callback.NOTHING_SELECTED)
void onNothingSelected() {
Toast.makeText(this, "Nothing", Toast.LENGTH_SHORT).show();
}
4.findById()方法
Resources:
【转】ButterKnife基本使用--不错的更多相关文章
- 【转】ButterKnife的使用--不错
原文网址:http://www.cnblogs.com/exmyth/p/4779763.html ButterKnife是一个Android View注入的库. 1.开始使用 1.1 配置Eclip ...
- butterknife简化android开发
butterknife库非常不错的依赖注入库 使用1 使用2 http://jakewharton.github.io/butterknife/ maven引入 http://www.mvnrepo ...
- 【转】Eclipse中设置ButterKnife进行注解式开发步骤 -- 不错
原文网址:http://www.bubuko.com/infodetail-974262.html 最近在进行Android注解式开发的学习,正在尝试用ButterKnife.ButterKnife的 ...
- Android实现文章+评论(MVP,RxJava,Dagger2,ButterKnife)
简介 这个项目主要有两个功能,一个加载网页/文章,另一个用来显示评论.并应用了MVP模式,Dagger2.RxJava.ButterKnife等开源框架.效果图如下: 结构 首先来看一下布局文件: & ...
- 【腾讯Bugly干货分享】深入理解 ButterKnife,让你的程序学会写代码
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/578753c0c9da73584b025875 0.引子 话说我们做程序员的,都 ...
- ButterKnife
1.简介 ButterKnife是注解中相对简单易懂的很不错的开源框架 1.强大的View绑定和Click事件处理功能,简化代码,提升开发效率 2.方便的处理Adapter里的ViewHolder绑定 ...
- 那些年不错的Android开源项目
那些年不错的Android开源项目 转载自 eoe 那些年不错的Android开源项目-个性化控件篇 第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.Acti ...
- Android开发之注解式框架ButterKnife的使用
ButterKnife官网 其实ButterKnife的注解式,与xUtils的ViewUtils模块基本上差不多,只要用过xUtils,这个框架基本上就会了. 一.原理. 最近发现一个很好用的开源框 ...
- Android Butterknife框架配置
一.原理. 最近发现一个很好用的开源框架,蛮不错的,可以简化你的代码,是关于注解的.不多说直接进入使用步骤讲解. 二.步骤. 1.准备阶段,先到官网( http://jakewharton.githu ...
随机推荐
- Object传入String类型和其他
是可以传入的. package com.sun.test; public class Test03 { /** * @param args */ public static void main(Str ...
- C#语法糖之第四篇: 扩展方法
今天继续分享C#4.0语法糖的扩展方法,这个方法也是我本人比较喜欢的方法.大家先想想比如我们以前写的原始类型不能满足现在的需求,而需要在该类型中添加新的方法来实现时大家会怎么做.我先说一下我没有学习到 ...
- 学习java随笔第十一篇:java窗体程序
要开java的窗体程序,就要下载开发窗体的工具. 这里我用的是的myeclipse,可以直接在网上下载安装即可. 我用的是10.0版本的,如果需要汉化的话,可以看一下这篇文章:myeclipse.10 ...
- 查看oracle 启动了多久
想看一下系统正常运行了多少天?开机多长时间没有重启了? windows系统 C:\>systeminfo |find “系统启动时间”系统启动时间: 265 天 4 小时 26 分 32 ...
- Delphi Excel
用delphi写excel文件 2007-03-18 21:12 1.引用: Excel2000, OleServer,Comobj, StdCtrls 2.声明变量: ExcelA ...
- JAVA学习-基础知识
1.Java程序都是以类的形式编写的.2.存放源代码的文件叫源文件.(电脑不能直接看懂的,需要编译一下,电脑才能懂)如何编译源文件?用javac命令输入"javac 123.Java&quo ...
- 搭建VPN服务器之PPTP
搭建VPN服务器之PPTP 1. 查看系统是否支持PPP 一般自己的系统支持,VPS需要验证. [root@oldboyedu ~]# cat /dev/ppp cat: /dev/ppp: No s ...
- Linux权限体系总结
总结 1. LINUX9位权限及rwx字符的作用.对应的数字及对应的用户和用户组图解. 2. rwx对文件来说代表什么意思. 3. rwx对目录来说代表什么意思. 4. 企业生产环境目录设置权 ...
- 修改Tomcat命令窗口的名字
在运行多个tomcat窗口的时候,可以通过修改tomcat命令窗口的名字来区分不同的tomcat,修改如下: 找到tomcat下面的这个文件:tomcat_home\bin\catalina.bat, ...
- Python疑问系列
最近在看python源码 ------点点滴滴做个记录. 预计要分的系列: 1. import 分析 2. 主要bytecode 分析 3. python启动分析 4. object对象分析 最后希望 ...