标签:appbase
一直想写博客,苦于自己的文笔实在不行,在CSDN潜水了好几年,中间差不多3年没有写过博客。原因有二:1、文笔差;2、没时间。
今年开始,时间充裕了,开始计划练练自己的文笔,也让自己成长起来,希望从中能够提升自己的能力。望大家多多支持和关注!!
appBase是一个Android app开发的基础集合,目的是任何应用都可以在这个基础之上开发app,省去了搭建框架的时间。
appBase=xutils+fastjson+avlib
下面,看代码说话。(^__^)
- apicloud.sdk是对apicloud的云API的调用做了简单封装
- base:只包含BaseActivity
- http:基于HttpUtils简化了常用的网络请求,定义网络参数APIs的配置
- presenter:采用了MVP中的P来命名,可以让非UI处理业务抽出放到这个结构中,因此BasePresenter诞生了。
- util:常用的工具类
- widget:常用的自定义组件(待扩展)
- Application:继承android.app.Application,为了统一使用框架中的组件对象,避免了组件的重复创建。因此建议使用这个类配置application的name。当然也可以基于此类扩展。
第三步:修改AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.snicesoft.appbase.demo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:name="com.snicesoft.Application"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
</application>
</manifest>
添加:android:name=”com.snicesoft.Application”
第四步:创建Activity
package com.snicesoft.appbase.demo;
import com.snicesoft.avlib.annotation.Layout;
import com.snicesoft.avlib.rule.IData;
import com.snicesoft.avlib.rule.IHolder;
import com.snicesoft.base.BaseActivity;
@Layout(R.layout.activity_main)
public class MainActivity extends
BaseActivity<MainActivity.Holder, MainActivity.Data> {
public class Holder extends IHolder {
@Override
public void initViewParams() {
}
}
public class Data extends IData {
}
@Override
public Data newData() {
return new Data();
}
@Override
public Holder newHolder() {
return new Holder();
}
}
看着class一栏,大家可能会花了眼,怎么这么长。这只是一种写法,推荐的写法(内部类)。我来说明下这个类:
第五步:使用IHolder和IData
package com.snicesoft.appbase.demo;
import com.snicesoft.avlib.annotation.DataBind;
import com.snicesoft.avlib.annotation.Id;
import com.snicesoft.avlib.annotation.Layout;
import com.snicesoft.avlib.rule.IData;
import com.snicesoft.avlib.rule.IHolder;
import com.snicesoft.base.BaseActivity;
@Layout(R.layout.activity_main)
public class MainActivity extends
BaseActivity<MainActivity.Holder, MainActivity.Data> {
public class Holder extends IHolder {
@Id(R.id.textView1)
TextView textView1;
@Id(R.id.button1)
Button button1;
@Override
public void initViewParams() {
}
}
public class Data extends IData {
@DataBind(id = R.id.textView1)
String tv1 = "我是自动绑定的TextView";
@DataBind(id = R.id.button1)
String btn1 = "我是自动绑定的Button";
}
@Override
public Data newData() {
return new Data();
}
@Override
public Holder newHolder() {
return new Holder();
}
}
运行结果
这个只是简单的avlib的view和数据自动绑定功能。后续在介绍其他功能的使用。
最后附上代码生成器源码:http://download.csdn.net/detail/englishbage/8789869
Android快速开发之appBase——(1).appBase介绍
标签:appbase
原文地址:http://blog.csdn.net/jflex/article/details/46430555