android ButterKnife

来源:互联网 发布:linux 压缩文件夹 命令 编辑:程序博客网 时间:2024/05/29 14:40
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,可以看一下。


 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很浅的一点东西!!!
0 0
原创粉丝点击