android butterknife
1、先到官网( http://jakewharton.github.io/butterknife/ )把对应的jar包下下来。
2、把下载下来的jar包,放到项目的libs下,就会自动导入项目了。
3、
eclipse配置
Annotation Procession –> 钩一下 Enable project specific settings 其它的就会自动钩上了
–> Factory Path ( 钩一下Enable project specific settings )–> 最后Add …. JARs 把刚刚下载的jar包来。
android studio中不需要配置
直接在libs对应的jar包上,右键,然后点击Add As Library 就可以用了。
butterknife有配套插件android-butterknife-zelezny,可以看一下。
butterknife其jar包已经更新到7.0.1了,有原来的inject变成了现在的bind
下面介绍其几个小的用法:
public class MainActivity extends Activity {
//找到ID并绑定上
@Bind(R.id.text)TextView textView;
@Bind(R.id.listView)ListView listView;
@Bind(R.id.button)Button button;
List<Person>dataList;
MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);//这里对view进行绑定不能忘了
dataList=new ArrayList<Person>();
for(int i=0;i<30;i++){
Person person=new Person();
person.setName("hello"+i);
person.setNumber("10086");
dataList.add(person);
}
adapter=new MyAdapter(this,dataList);
listView.setAdapter(adapter);
}
@OnClick(R.id.text)
//注意:下面所跟的的方法不能是static或者private类型的
public void say(TextView textView){
Toast.makeText(getApplicationContext(),"hello world",Toast.LENGTH_SHORT).show();
textView.setText("butterKnife");
}
@OnItemClick(R.id.listView)
//监听listview里面item的点击对象,相对于原来的也挺简单的
public void onMyItemClick(int position){
//position为点击的位置
Toast.makeText(this,position+"",Toast.LENGTH_SHORT).show();
}
@OnClick(R.id.button)
//监听button的点击,可以直接这样,比以前的onclicklistener要简单
public void button(){
Toast.makeText(getApplicationContext(),"button",Toast.LENGTH_SHORT).show();
}
}
在自定义的adapter里面也可以用
static class ViewHolder{
//在viewholder里面使用
@Bind(R.id.item_text1)TextView name;
@Bind(R.id.item_text2)TextView number;
public ViewHolder(View view){
ButterKnife.bind(this,view);
}
}
//多的代码就删除了,免得看起来复杂!
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if(convertView==null){
convertView = mInflater.inflate(R.layout.item, null);
viewHolder=new ViewHolder(convertView);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.name.setText(list.get(position).getName());
viewHolder.number.setText(list.get(position).getNumber());
return convertView;
}
}
关于butterknife很浅的一点东西!!!
1、先到官网( http://jakewharton.github.io/butterknife/ )把对应的jar包下下来。
2、把下载下来的jar包,放到项目的libs下,就会自动导入项目了。
3、
eclipse配置
Annotation Procession –> 钩一下 Enable project specific settings 其它的就会自动钩上了
–> Factory Path ( 钩一下Enable project specific settings )–> 最后Add …. JARs 把刚刚下载的jar包来。
android studio中不需要配置
直接在libs对应的jar包上,右键,然后点击Add As Library 就可以用了。
butterknife有配套插件android-butterknife-zelezny,可以看一下。
http://jakewharton.github.io/butterknife/这个上面也有对其用法的介绍。
butterknife其jar包已经更新到7.0.1了,有原来的inject变成了现在的bind
下面介绍其几个小的用法:
public class MainActivity extends Activity {
//找到ID并绑定上
@Bind(R.id.text)TextView textView;
@Bind(R.id.listView)ListView listView;
@Bind(R.id.button)Button button;
List<Person>dataList;
MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);//这里对view进行绑定不能忘了
dataList=new ArrayList<Person>();
for(int i=0;i<30;i++){
Person person=new Person();
person.setName("hello"+i);
person.setNumber("10086");
dataList.add(person);
}
adapter=new MyAdapter(this,dataList);
listView.setAdapter(adapter);
}
@OnClick(R.id.text)
//注意:下面所跟的的方法不能是static或者private类型的
public void say(TextView textView){
Toast.makeText(getApplicationContext(),"hello world",Toast.LENGTH_SHORT).show();
textView.setText("butterKnife");
}
@OnItemClick(R.id.listView)
//监听listview里面item的点击对象,相对于原来的也挺简单的
public void onMyItemClick(int position){
//position为点击的位置
Toast.makeText(this,position+"",Toast.LENGTH_SHORT).show();
}
@OnClick(R.id.button)
//监听button的点击,可以直接这样,比以前的onclicklistener要简单
public void button(){
Toast.makeText(getApplicationContext(),"button",Toast.LENGTH_SHORT).show();
}
}
在自定义的adapter里面也可以用
static class ViewHolder{
//在viewholder里面使用
@Bind(R.id.item_text1)TextView name;
@Bind(R.id.item_text2)TextView number;
public ViewHolder(View view){
ButterKnife.bind(this,view);
}
}
//多的代码就删除了,免得看起来复杂!
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if(convertView==null){
convertView = mInflater.inflate(R.layout.item, null);
viewHolder=new ViewHolder(convertView);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.name.setText(list.get(position).getName());
viewHolder.number.setText(list.get(position).getNumber());
return convertView;
}
}
关于butterknife很浅的一点东西!!!