ButterKnife的使用
来源:互联网 发布:程序员思维修炼 pdf 编辑:程序博客网 时间:2024/05/18 13:11
步骤:
1、导入butterknife-7.0.1.jar包
2、在声明的组建变量前注入对应要绑定的id,采用@bind(R.id.id名)的形式
3、在对应的activity的oncreate方法中加入:ButterKnife.bind(当前的activity.this);
4、需要注意的,如果采用bind方式注入对应的组件的话,那么该组件对象在声明的时候就不能是static修饰或者private修饰。
5、然后跟jar包里面的方法关联起来,详细配置如下:
选择你的项目右键-->properties-->java compiler-->Annotation Processing-->勾选Enable annotation processing
展开Annotation Processing-->Factory Path-->勾选Enable project specific settings-->Add External JARs...-->选中你的butterknife.jar
butterknife也可以用来注入配置文件中的值,但是需要注意的是,目前StringArray和intArray没有对应的方法进行注入,只能通过老办法获取。
一些常见使用:
// TextView tv=(TextView) findViewById(R.id.main_tv); @Bind(R.id.main_tv) TextView tv;
// String name=getResources().getString(R.string.myname); @BindString(R.string.myname) String myname;
// int white=getResources().getColor(R.color.white); @BindColor(R.color.white) int white;
// Drawable drawable=getResources().getDrawable(R.drawable.ic_launcher); @BindDrawable(R.drawable.ic_launcher) Drawable drawable;
// class MyView{// TextView tv;// ImageView iv;// public MyView(View v){// tv=(TextView) v.findViewById(R.id.item_tv);// iv=(ImageView) v.findViewById(R.id.item_iv);// }// } class MyView{ @Bind(R.id.item_tv) TextView tv; @Bind(R.id.item_iv) ImageView iv; public MyView(View v){ ButterKnife.bind(this, v); } }
//Button bt1=(Button) findViewById(R.id.main_bt1);//bt1.setOnClickListener(new OnClickListener() {////@Override//public void onClick(View v) {//Toast.makeText(MainActivity.this, "点击了按钮1", 1000).show();//}//});@OnClick(R.id.main_bt1)public void bt1_listener(){Toast.makeText(MainActivity.this, "点击了按钮1", 1000).show();}
举个例子:
1、导入butterknife-7.0.1.jar包
2、整体activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ListView android:id="@+id/main_list" android:layout_width="match_parent" android:layout_height="wrap_content" /></RelativeLayout>
3、item布局list_item.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:id="@+id/item_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/tx1"/> <TextView android:id="@+id/item_tv" android:layout_width="match_parent" android:layout_height="match_parent" android:text="1"/> </LinearLayout></LinearLayout>
4、在drawable添加图片
tx1.jpg
tx2.jpg
tx3.jpg
tx4.jpg
tx5.jpg
5、java代码
MyAdapter.java
package com.example.binduse;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import butterknife.Bind;import butterknife.ButterKnife;public class MyAdapter extends BaseAdapter{private String[] name;private int[] pic;private Context context;public MyAdapter(String[] name, int[] pic, Context context) {super();this.name = name;this.pic = pic;this.context = context;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn name.length;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn name[position];}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {MyView myView;if (convertView==null) {//加载对象LayoutInflater layoutInflater=LayoutInflater.from(context);//实例化加载对象item的view对象convertView=layoutInflater.inflate(R.layout.list_item, parent, false);//实例化内部静态类myView=new MyView(convertView);//设值convertView.setTag(myView);}else {myView=(MyView) convertView.getTag();}//传值myView.iv.setImageResource(pic[position]);myView.tv.setText(name[position]);return convertView;}class MyView{@Bind(R.id.item_tv)TextView tv;@Bind(R.id.item_iv)ImageView iv;public MyView(View v){ButterKnife.bind(this, v);}}}
MainActivity.java
package com.example.binduse;import android.app.Activity;import android.os.Bundle;import android.widget.ListView;import butterknife.Bind;import butterknife.ButterKnife;public class MainActivity extends Activity {private String[] name={"工藤新一","毛利兰","毛利小五郎","怪盗基德","灰原哀"};private int[] id={R.drawable.tx1,R.drawable.tx2,R.drawable.tx3,R.drawable.tx4,R.drawable.tx5};@Bind(R.id.main_list)ListView list;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ButterKnife.bind(MainActivity.this);MyAdapter simple=new MyAdapter(name, id, MainActivity.this);list.setAdapter(simple);}}
0 0
- butterknife的使用
- butterknife的使用
- ButterKnife的使用
- ButterKnife 的使用
- 兔子--ButterKnife的使用
- ButterKnife的使用
- ButterKnife的使用
- ButterKnife的简单使用
- ButterKnife的使用详解
- ButterKnife的简单使用
- ButterKnife的使用
- ButterKnife的使用
- ButterKnife的使用问题
- butterknife框架的使用
- Android Butterknife的使用
- ButterKnife的基本使用
- ButterKnife的使用步骤
- ButterKnife的使用
- 集训队专题(4)1004 Where is the canteen
- hdu3790 最短路径问题 (dijkstra,双关键值最短路)
- arm学习之linux内核移植分析
- hadoop2.x常用端口及定义方法
- Swift协议
- ButterKnife的使用
- 序言
- conky 增加cpu温度监控
- 个人网站模板
- bulletin board system (BBS)
- poj1236-Tarjan算法
- 编程之美 - 一排石头游戏及扩展问题
- vim命令
- Spring JdbcTemplate方法详解