Android快速开发框架之xUtils---注解模块
来源:互联网 发布:重庆seo推广服务 编辑:程序博客网 时间:2024/05/21 21:35
xUtils 包含了很多实用的android工具,本篇博客将介绍一下xUtils的注解模块。
- xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响…
- xUitls 最低兼容android 2.2 (api level 8)
- xUtils总共包括四大模块分别是:注解模块、网络模块、图片模块、数据库模块。
1.在build.gradle
中依赖xUtils
compile 'org.xutils:xutils:3.3.26'
2.对框架进行初始化,创建一个类 extends Application、在Manifest文件中注册zsyApp
public class zsyApp extends Application { @Override public void onCreate() { super.onCreate(); //框架初始化 x.Ext.init(this); }}
3.使用注解的方式加载布局,绑定控件
@ContentView(R.layout.activity_main)//Activity注解public class MainActivity extends AppCompatActivity { @ViewInject(R.id.viewpager)//布局控件注解 ViewPager viewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //只需这一行代码,就将布局和控件加载了。省去了重复的findViewById(); x.view().inject(this);//加载布局,控件 }}
4.使用@Event为按钮绑定监听事件
//通常我们会使用匿名内部类为按钮绑定监听事件button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); /** * button的点击事件 * 访问修饰符必须是private,方法名可以任意。参数和返回值必须跟上面写的onClick方法一致 * type 默认值是View.OnClickListener.class,如果是这个可以不写。也就是事件类型 * value对应的就是控件id,所以我们可以不用findViewById绑定控件 * @param view */ @Event(type = View.OnClickListener.class, value = R.id.btn) private void click(View view) { Snackbar.make(view, "点击事件", Snackbar.LENGTH_SHORT).show(); } /** * button的长按事件 * @param view */ @Event(type = View.OnLongClickListener.class, value = R.id.btn) private boolean Longclick(View view) { Snackbar.make(view, "长按事件", Snackbar.LENGTH_SHORT).show(); return true; }
5.Fragment注解
@ContentView(R.layout.inject_view)//加载布局public class InjectFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return x.view().inject(this, inflater, container);//fragment注解 }}
6.对ListView中ViewHolder进行注解绑定和Item的点击/长按事件
//ListView代码省略,请自行脑补....public class ListViewAdapter extends BaseAdapter { private List<String> listItems; private LayoutInflater inflater; public ListViewAdapter(Context context, List<String> listItems) { this.listItems = listItems; inflater = LayoutInflater.from(context); } @Override public int getCount() { return listItems.size(); } @Override public Object getItem(int position) { return listItems.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (convertView == null) { convertView = inflater.inflate(android.R.layout.simple_list_item_1, null); viewHolder = new ViewHolder(); //ViewHolder注解 x.view().inject(viewHolder, convertView); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.childName.setText(listItems.get(position)); return convertView; } private class ViewHolder { @ViewInject(android.R.id.text1)//加载item的控件 TextView childName; }} /** * ListViewItem的点击事件 */ @Event(type = AdapterView.OnItemClickListener.class, value = R.id.list_item) private void onItemClick(AdapterView<?> parent, View view, int position, long id) { Snackbar.make(view, list.get(position) + "点击事件", Snackbar.LENGTH_SHORT).show(); }/** * ListViewItem的长按事件 */ @Event(type = AdapterView.OnItemLongClickListener.class, value = R.id.list_item) private boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { Snackbar.make(view, list.get(position) + "长按事件", Snackbar.LENGTH_SHORT).show(); return true; }
到这里就注解模块就说完了,接下来我们在说一说网络模块。
项目地址:https://github.com/azhong1011/xUtils
2 0
- Android快速开发框架之xUtils---注解模块
- Android快速开发框架之xUtils---注解模块 ---- ViewInject
- 【xUtils】Android快速开发框架之xUtils
- Android快速开发框架之xUtils---网络模块
- Android快速开发框架之xUtils---图片模块
- Android快速开发框架之xUtils---数据库模块
- Android 快速开发框架XUtils
- android快速开发框架xUtils
- android快速开发xUtils框架
- Android 快速开发框架XUtils
- Android 快速开发框架XUtils
- android快速开发框架xUtils
- Android 快速开发框架XUtils
- Android 快速开发框架xUtils
- android快速开发框架xUtils
- Android 快速开发框架xUtils
- Android 快速开发框架XUtils
- android快速开发框架xUtils
- 证书Certificate以及android打包签名
- UML类图几种关系的总结
- 代码设计阶段基本思想
- jQuery选择器总结
- springmvc配置全局的日期转换器
- Android快速开发框架之xUtils---注解模块
- C++ 从文件中提取特定字符串
- opencv 鼠标操作 setMouseCallback
- C与C++学习笔记 --- g++ 和 gcc 学习笔记
- 建立https链接的SLL验证证书失效问题
- Retrofit中如何正确的使用https和证书锁定
- java 问题 无法解析类型 java.lang.CharSequence。从必需的 .class 文件间接引用了它
- Android之SDK、NDK、JNI和so文件
- ExecutorService 的理解与使用