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

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);


 





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值