ButterKnife注入框架的使用
1、今天看到可以简单的获取xml中的id的方式,既然这么好当然要用了。
参考文档:http://blog.****.net/itjianghuxiaoxiong/article/details/50177549
2、导入ButterKnife,需要修改三个地方
(1)、首先需要在真个工程下,就是APP的外面加入classpath
//butterknife注入 classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1'
(2)、在app.build中加入apply和引入的包
apply plugin: 'com.android.application' //bufferknife依赖注入 apply plugin: 'com.jakewharton.butterknife'
//ButterKnife 依赖注解框架 compile 'com.jakewharton:butterknife:8.5.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
3、使用时,可直接调用id和onclick
@BindView(R.id.service_second_listview) ListView service_second_listview;
点击事件,可不用实现点击方法
@OnClick(R.id.second_transfer_text) public void onTransferClicked() { startActivity(SecondHouseInfoActivity.class,null); }
listview的点击事件:
@OnItemClick(R.id.service_second_listview) public void onItemClick(int position) { startActivity(SecondHouseInfoActivity.class,null); }
在adapter使用时
@SuppressLint("ResourceAsColor") public View getView(int position, View convertView, ViewGroup parent) { ViewHold hold; if (convertView == null) { convertView = LayoutInflater.from(context).inflate(R.layout.second_house_adapter, null); hold = new ViewHold(convertView); convertView.setTag(hold); } else { hold = (ViewHold) convertView.getTag(); } hold.communit_name_text.setText(listHousing.get(position).getCommunityName()); hold.custom_name_text.setText(listHousing.get(position).getCustomName()); hold.custom_phone_text.setText(listHousing.get(position).getCustomPhone()); return convertView; } class ViewHold { //小区名称 @BindView(R.id.communit_name_text) TextView communit_name_text; //客户名称 @BindView(R.id.custom_name_text) private TextView custom_name_text; //客户电话 @BindView(R.id.custom_phone_text) private TextView custom_phone_text; public ViewHold(View v) { ButterKnife.bind(this,v); } }