Android ButterKnife注解式开发

摘要:
在Android开发中,findViewById和setOnClickListener不需要编写方法@BindStringStringtitle;@BindDrawableDrawablegraphic;@绑定着色;@BindDimensionFloatspacer;视图侦听器的绑定。ButterKnife注释中传递的ViewID侦听器将自动配置到方法@OnClickpublicvoidbtClick{tooth.makeText.show();}ButterKnife不仅支持@OnClick,还支持@OnLongClick、@OnTouch等。有关详细信息,请参阅Javadochttp://jakewharton.github.io/butterknife/javadoc/在非活动状态下使用ButterKnife提供了ButterKnight的几个过载。bind()。只要传入根布局,就可以在任何对象中使用注释绑定。

在Android开发中findViewById和setOnClickListener解脱写法。

在任意的一个类中 @Bind(R.id.et) EditText editText;

@OnClick(R.id.btn)

public void btnClick(){ Toast.makeText(MainActivity.this,editText.getText().toString(),3000).show(); }

@Override protected void

onCreate(Bundle savedInstanceState)

{ super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main); ButterKnife.bind(this); }

这是ButterKnife注解 在Gradle中引用 compile 'com.jakewharton:butterknife:7.0.1'

Eclipse 下载Jar包

在Activity中使用 onCreate中加入这一行 (切记) ButterKnife.bind(this);

ButterKnife通过@Bind 注解传入View ID

@Bind(R.id.et) EditText editText; @Bind(R.id.btn) Button button;

绑定资源到类成员上可以使用@BindBool、@BindColor、@BindDimen、@BindDrawable、@BindInt、@BindString

。使用时对应的注解需要传入对应的id资源,例如@BindString你需要传入R.string.txt的字符串的资源id。

@BindString(R.string.title) String title;

@BindDrawable(R.drawable.graphic) Drawable graphic;

@BindColor(R.color.red) int red;

@BindDimen(R.dimen.spacer) Float spacer; View监听器的绑定,在ButterKnife注解中传入ViewID 监听器将自动配置到方法中

@OnClick(R.id.btn)

public void btnClick(View view){ Toast.makeText(MainActivity.this,editText.getText().toString(),3000).show(); }

ButterKnife不仅支持@OnClick,还支持@OnLongClick,@OnTouch等等,详细参考Javadoc http://jakewharton.github.io/butterknife/javadoc/ 在非Activity中使用 Butter Knife提供了ButterKnife.bind()的几个重载,只要传入根布局,便可以在任何对象中使用注解绑定。 @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; } 在ListView的Adapter中 @Override public View getView(int position, View view, ViewGroup parent) { ViewHolder holder; if (view != null) { holder = (ViewHolder) view.getTag(); } else { view = inflater.inflate(R.layout.whatever, parent, false); holder = new ViewHolder(view); view.setTag(holder); } holder.name.setText("John Doe"); // etc... return view; } static class ViewHolder { @Bind(R.id.title) TextView name; @Bind(R.id.job_title) TextView jobTitle; public ViewHolder(View view) { ButterKnife.bind(this, view); } } 对于在Fragment中使用ButterKnife需要注意:Fragment与Activity生命周期不同,Fragment比Activity多个解除绑定的步骤 @Override public void onDestroyView() { super.onDestroyView(); ButterKnife.unbind(this); }

免责声明:文章转载自《Android ButterKnife注解式开发》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇前端福利!10个短小却超实用的JavaScript 代码段如何计算模型参数的估计值(梯度下降法)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android应用程序签名详解 简介

转自: http://blog.csdn.net/lyq8479/article/details/6401093   本文主要讲解Android应用程序签名相关的理论知识,包括:什么是签名、为什么要给应用程序签名、如何给应用程序签名等。 1、什么是签名?      如果这个问题不是放在Android开发中来问,如果是放在一个普通的版块,我想大家都知道签名...

15个Android通用流行框架大全

1. 缓存 DiskLruCache  Java实现基于LRU的磁盘缓存 2.图片加载 Android Universal Image Loader  一个强大的加载,缓存,展示图片的库 Picasso  一个强大的图片下载与缓存的库 Fresco  一个用于管理图像和他们使用的内存的库 Glide   一个图片加载和缓存的库 3. 图片处理 Pi...

Android中的沉浸式状态栏效果

无意间了解到沉浸式状态栏,感觉贼拉的高大上,于是就是试着去了解一下,就有了这篇文章。下面就来了解一下啥叫沉浸式状态栏。传统的手机状态栏是呈现出黑色条状的,有的和手机主界面有很明显的区别。这一样就在一定程度上牺牲了视觉宽度,界面面积变小。Google从android kitkat(Android 4.4)开始,给我们开发者提供了一套能透明的系统ui样式给状态...

org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'xxx' is not present 报错解决

报错如下: org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'user' is not present   再调试的时候遇到这个问题,查询相关资料后,有几种解决办法 1.将 下图中的 true 改成false 1...

Android图片处理

  相信做Android开发的小伙伴对于Android图片压缩、裁剪一定有很深的印象,今天我将带领大家一起学习一下这个看着高深莫测的知识,以便再以后的学习、工作中可以帮助到大家。   首先我们看一下这个问题出现的原因,当我们需要在我们的应用中添加大量图片是,程序往往会报出OMM问题,这是什么问题呢?是当我们添加的照片过多或过大时,Android就会报出超内...

android中的内部存储与外部存储

我们先来考虑这样一个问题: 打开手机设置,选择应用管理,选择任意一个App,然后你会看到两个按钮,一个是清除缓存,另一个是清除数据,那么当我们点击清除缓存的时候清除的是哪里的数据?当我们点击清除数据的时候又是清除的哪里的数据?读完本文相信你会有答案。 在android开发中我们常常听到这样几个概念,内存,内部存储,外部存储,很多人常常将这三个东西搞混,那么...