首先配置ButterKnife:
在第二个build.gradle中配置
dependencies { compile 'com.jakewharton:butterknife:8.4.0' apt 'com.jakewharton:butterknife-compiler:8.4.0' }
在最上方配置
apply plugin: 'com.neenbedankt.android-apt'在第一个build.gradle中配置
其他不变buildscript { repositories { jcenter() maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath 'com.android.tools.build:gradle:2.1.3' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' }
配置ButterKnife快捷键插件:
选择第二个网络下载
下载第一个
然后重启studio
然后在(R.layout.xxx)布局后面单机右键
选择Generate ButterKnife Injections
选择你想要生成的id即可
RecyclerView的配置即使用:
第二个build.gradle中配置
dependencies { compile 'com.android.support:appcompat-v7:24.2.0' compile 'com.android.support:recyclerview-v7:24.2.0' }
初始化RecyclerView:
@BindView(R.id.recycler) RecyclerView recycler;初始话数据:
List<String> list = new ArrayList<>(); list.add("第一条数据"); list.add("第二条数据"); list.add("第三条数据"); list.add("第四条数据"); list.add("第五条数据"); list.add("第六条数据"); list.add("第七条数据"); MyAdapter adapter = new MyAdapter(this, list);//布局管理器 recycler.setLayoutManager(new LinearLayoutManager(this)); recycler.setAdapter(adapter);
Adapte的简单配置:
/** * Created by didi on 2016/9/8. */ public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHold> { private Context context; private List<String> datas; private LayoutInflater inflater; /** * 构造方法 * @param context 加载布局的Context类 * @param list 集合装载数据的 */ public MyAdapter(Context context, List<String> list) { inflater = LayoutInflater.from(context); this.datas = list; this.context = context; } /** * 当创建hold回调函数 * @param parent * @param viewType * @return */ @Override public MyViewHold onCreateViewHolder(ViewGroup parent, int viewType) { //加载布局 View view = inflater.inflate(R.layout.item, parent, false); //创建hold类 MyViewHold hold = new MyViewHold(view); return hold; } /** * 当绑定hold是回调函数 * @param holder 上边方法传递的hold * @param position */ @Override public void onBindViewHolder(MyViewHold holder, int position) { //配置item数据 holder.tv.setText(datas.get(position)); } @Override public int getItemCount() { return datas.size(); //item长度 } //viewHold优化类 class MyViewHold extends RecyclerView.ViewHolder{ @BindView(R.id.item_tv) TextView tv; @BindView(R.id.item_iv) ImageView iv; public MyViewHold(View itemView) { super(itemView); ButterKnife.bind(this,itemView); } } }