ButterKnife参考
来源:互联网 发布:云服务器 8000 端口 编辑:程序博客网 时间:2024/06/06 13:06
1、添加库compile 'com.jakewharton:butterknife:7.0.1'2、在Activity中使用setContentView函数后面添加ButterKnife.bind(this);View Bind @Bind(R.id.title) TextView title; @Bind(R.id.subtitle) TextView subtitle; @Bind(R.id.footer) TextView footer;Resouce Bind @BindString(R.string.title) String title; @BindDrawable(R.drawable.graphic) Drawable graphic; @BindColor(R.color.red) int red; // int or ColorStateList field @BindDimen(R.dimen.spacer) Float spacer; // int (for pixel size) or float (for exact value) field 3、在Fragment中使用public class FancyFragment extends Fragment { @Bind(R.id.button1) Button button1; @Bind(R.id.button2) Button button2; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fancy_fragment, container, false); ButterKnife.bind(this, view); // TODO Use fields... return view; }} 4、Adapter中使用 static class ViewHolder { @Bind(R.id.title) TextView name; @Bind(R.id.job_title) TextView jobTitle; public ViewHolder(View view) { ButterKnife.bind(this, view); } } 5、简单动作处理@Bind({ R.id.first_name, R.id.middle_name, R.id.last_name })List<EditText> nameViews;The apply method allows you to act on all the views in a list at once.ButterKnife.apply(nameViews, DISABLE);ButterKnife.apply(nameViews, ENABLED, false);Action and Setter interfaces allow specifying simple behavior.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.apply(nameViews, View.ALPHA, 0.0f);6、动作监听绑定@OnClick(R.id.submit)public void submit(View view) { // TODO submit data to server...}@OnClick(R.id.submit)public void submit() { // TODO submit data to server...}@OnClick(R.id.submit)public void sayHi(Button button) { button.setText("Hello!");}@OnClick({ R.id.door1, R.id.door2, R.id.door3 })public void pickDoor(DoorView door) { if (door.hasPrizeBehind()) { Toast.makeText(this, "You win!", LENGTH_SHORT).show(); } else { Toast.makeText(this, "Try again", LENGTH_SHORT).show(); }}public class FancyButton extends Button { @OnClick public void onClick() { // TODO do something! }} 7、绑定重置public class FancyFragment extends Fragment { @Bind(R.id.button1) Button button1; @Bind(R.id.button2) Button button2; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fancy_fragment, container, false); ButterKnife.bind(this, view); // TODO Use fields... return view; } @Override public void onDestroyView() { super.onDestroyView(); ButterKnife.unbind(this); }} 8、使用 @Nullable 设置可选绑定 @Nullable @Bind(R.id.might_not_be_there) TextView mightNotBeThere;@Nullable @OnClick(R.id.maybe_missing) void onMaybeMissingClicked() { // TODO ...} 9、多个方法进行监听绑定@OnItemSelected(R.id.list_view)void onItemSelected(int position) { // TODO ...}@OnItemSelected(value = R.id.maybe_missing, callback = NOTHING_SELECTED)void onNothingSelected() { // TODO ...} 10、findById方法View view = LayoutInflater.from(context).inflate(R.layout.thing, null);TextView firstName = ButterKnife.findById(view, R.id.first_name);TextView lastName = ButterKnife.findById(view, R.id.last_name);ImageView photo = ButterKnife.findById(view, R.id.photo);转自:http://jakewharton.github.io/butterknife/
1 0
- ButterKnife参考
- Butterknife的源码解析(仅作学习参考用)
- ButterKnife
- ButterKnife
- ButterKnife
- ButterKnife
- ButterKnife
- ButterKnife
- ButterKnife
- butterknife
- ButterKnife
- ButterKnife
- Butterknife
- butterknife
- ButterKnife
- ButterKnife
- butterknife
- butterknife
- iOS多线程理解
- 有效使用目标的运动特征
- JVM并发机制的探讨——内存模型、内存可见性和指令重排序
- GCD多内核线程-之dispatch queue深入浅出
- linnx系统下修改vim配色方案
- ButterKnife参考
- spring mvc实现Restful返回xml格式数据
- oracle数据库乱码问题解决
- 三层交换机多VLAN之间DHCP配置
- App工程结构搭建:几种常见Android代码架构分析
- android dialog宽度无法填满屏幕解决方案
- ORACLE 对用户密码做限制
- Android ButterKnife注解式开发
- kali 下安装nessus