您的位置:首页 > 移动开发 > Android开发

Android的快速开发框架 afinal 快速上手

2014-04-18 17:52 501 查看
1.afinal 框架下载地址框架下载地址链接

不过该框架有些地方需要修改源码才能满足需求,所以我一般都直接把源码打进项目,方便修改。

2.添加框架的时候需要增加权限,修改AndroidManifest.xml添加以下权限代码(访问网络和SD卡):

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


3.UI、事件绑定

所有Activity继承FinalActivity,如下面绑定,直接就省略了在Activity写findViewById方法获取UI,而且也省略了绑定事件,这里只需要绑定方法名就行

@ViewInject(id = R.id.btn_refresh, click = "btnRefresh",longClick="",itemClick="",itemLongClick="")
private Button BtnRefresh;

public void btnRefresh(View v) {
if (v == getBtnRefresh()) {
reloadData();
}
}


4.FinalDB
初始化FinalDB,Common.getDBPath()是指数据库所在的文件路径,Common.DB_NAME是我自己指定的一个常量,数据库的名称。

FinalDB db = FinalDb.create(this, Common.getDBPath(), Common.DB_NAME);


FinalDB这个类封装了数据库操作的方法,学过hibernate的朋友可以很快上手,每个数据表对应一个Java实体类,通过注解绑定关系,例如这个类:

package com.lyy.exhibition.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import net.tsz.afinal.annotation.sqlite.Id;
import net.tsz.afinal.annotation.sqlite.OneToMany;
import net.tsz.afinal.annotation.sqlite.Property;
import net.tsz.afinal.annotation.sqlite.Table;

@Table(name = "visit_archive")
public class VisitArchive {

@Id(column = "id")
private int archiveId;
@Property(column = "archive_name")
private String archiveName;
@Property(column = "archive_desc")
private String archiveDesc;
@Property(column = "visit_time")
private Date visitTime;
@OneToMany(manyColumn = "archive_id")
private List<VisitPhoto> visitPhotos = new ArrayList<VisitPhoto>();

public int getArchiveId() {
return archiveId;
}

public void setArchiveId(int archiveId) {
this.archiveId = archiveId;
}

public String getArchiveName() {
return archiveName;
}

public void setArchiveName(String archiveName) {
this.archiveName = archiveName;
}

public String getArchiveDesc() {
return archiveDesc;
}

public void setArchiveDesc(String archiveDesc) {
this.archiveDesc = archiveDesc;
}

public Date getVisitTime() {
return visitTime;
}

public void setVisitTime(Date visitTime) {
this.visitTime = visitTime;
}

public List<VisitPhoto> getVisitPhotos() {
return visitPhotos;
}

public void setVisitPhotos(List<VisitPhoto> visitPhotos) {
this.visitPhotos = visitPhotos;
}

}


如果不指定table_name和table_property的话,程序会按照你的字段名称去生成,不过还是自己指定比较好,顺便说一下,afinal不支持多主键,这点比较无语。

FinalDB中提供很多封装好的数据库操作,所以很方便,例如下面保存:

VisitArchive archive = new VisitArchive();
archive.setArchiveName(archiveName);
archive.setArchiveDesc(archiveDesc);
if (archiveId > 0) {
// 更新
archive.setArchiveId(archiveId);
db.update(archive);
}else{ 
// 新增
archive.setVisitTime(new Date(System.currentTimeMillis()));
db.save(archive);
}


5.FinalBitmap
初始化FinalBitmap

FinalBitmap finalBitmap = FinalBitmap.create(this.getApplicationContext());


加载网络图片或者本地图片就一行代码

finalBitmap.display(imageView,url);


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: