使用ButterKnife完成Adapter
来源:互联网 发布:mac os x86 编辑:程序博客网 时间:2024/06/09 17:25
ButterKnife框架注解框架,采用注解的方式,可以简化你的代码。
ButterKnife在eclipse中的进行配置的具体方法:
工程项目
-> 右键
-> 选择 properties
-> 选中 java Complier
-> 选中 Annotation Processing
-> 勾选 Enable project specific settings (勾选后,其他选项自动被勾选)
-> 选中 Factory Path
-> 勾选 Enable project specific settings
-> 点击 Add JARs
-> 添加 butterknife.jar
配置好了之后还需要将butterknife.jar包导入项目。
在MainActivity中,将在xml文件中定义的Textview与listview注入:
@InjectView (R.id.text) TextView tv; @InjectView (R.id.list) ListView listview;
并在oncreat()方法中调用ButterKnife.inject(this);
这样就完成了注解。
在Adapter的定义中,也可以使用ButterKnife,简化Holder中的代码:
class Holder{ @InjectView (R.id.tv) TextView textview; public Holder(View view) { ButterKnife.inject(this,view); } }
getView方法中的调用如下:
@Override public View getView(int position, View convertview, ViewGroup parent) { // TODO Auto-generated method stub Holder holder; if (convertview == null) { convertview = layoutInflater.inflate(R.layout.data_list, null); holder = new Holder(convertview); convertview.setTag(holder); }else{ holder = (Holder) convertview.getTag(); } holder.textview.setText(data.get(position)); return convertview; }
如果需要对listview中的数据实现事件监听,需要在MainActivity中注册OnItemClickedListener,ButterKnife提供了相应的方法:
@OnItemClick (R.id.list) public void onDataClick(AdapterView<?> parent, View view, int position, long idlong){ if(position < data.size()){ switch (position) { case 0: gotoActivity(MainActivity.this, FirstActivity.class); break; case 1: gotoActivity(this, SecondActivity.class); break; default: Toast.makeText(this, data.get(position), Toast.LENGTH_SHORT).show(); break; } } }
其中gotoActivity是自己写的一个Activity跳转的函数:
private void gotoActivity(Context context,Class<?> cls){ Intent intent = new Intent(); intent.setClass(context, cls); startActivity(intent); }
使用ButterKnife框架基本实现了Adapter的相关操作
- 使用ButterKnife完成Adapter
- ButterKnife结合RecyclerView.Adapter一起使用
- ButterKnife结合RecyclerView.Adapter一起使用
- ButterKnife在RecyclerView adapter中的使用
- android 低耦合度的adapter与holder案例,使用butterknife
- RecyclerView.Adapter结合ButterKnife封装
- ButterKnife使用
- butterknife使用
- ButterKnife使用
- 使用butterknife
- ButterKnife使用
- butterknife使用
- ButterKnife使用
- butterknife使用
- ButterKnife使用
- ButterKnife使用
- ButterKnife使用
- ButterKnife使用
- 基于机器视觉的工业机器人定位系统
- NI9237卡发现不了?
- zoj 1109 字典树
- 企业的云之旅程
- ios8 设置导航栏颜色
- 使用ButterKnife完成Adapter
- C++中wstring和string的互相转换
- jacob操作Microsoft Word
- android zygote之启动过程分析
- sql之left join、right join、inner join的区别
- Model验证总结
- Android SpannableString 的用法
- list contro控件根据单元格的内容改变显示的颜色
- 关于c和c++互相调用