編輯:關於Android編程
https://github.com/greenrobot/greenDAO
新建gradle空白項目,項目結構如下:
新建”lib-greendao-generator”module。此library主要是生成Dao、Bean文件,所以主項目不必引用。並且它是一個純java module。
新建Module
選擇Java Library
起個名字,然後finish<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxpbWcgYWx0PQ=="起個名字" src="/uploadfile/Collfiles/20160423/20160423090453310.png" title="\" />
目錄結構如下
lib-greendao-generator/build.gradle配置
apply plugin: 'application'
apply plugin: 'java'
//設置主class,否則編譯不通過
mainClassName = "com.example.GeneratorClass"
//設置自動生成類的目錄,這個目錄不是本lib的目錄,而是另一個需要被主app引用的目錄
def outputDir = "../lib-greendao/src/main/java-gen"
dependencies {
//添加generator工具引用
compile 'org.greenrobot:greendao-generator:2.2.0'
}
//自動創建文件夾
task createDocs {
def docs = file(outputDir)
docs.mkdirs()
}
//執行
run {
args outputDir
}
MyClass.java相關代碼
package com.example;
import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;
/**
* 創建db類
* 生成操作數據庫所需的bean和dao
*/
public class MyClass {
public static void main(String[] args) throws Exception {
//參數1是版本號
//參數2是生成文件的包
Schema schema = new Schema(1, "com.prance.greendao");
addNewsDetail(schema);
try {
//後面的目錄是在gradle中配置的路徑
new DaoGenerator().generateAll(schema, "lib-greendao/src/main/java-gen");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 創建表
* 生成dao和bean
*
* @param schema
*/
private static void addNewsDetail(Schema schema) {
Entity newsDetail = schema.addEntity("TestBean");
newsDetail.setHasKeepSections(true);
newsDetail.addStringProperty("id").primaryKey().index();
newsDetail.addStringProperty("title");
newsDetail.addStringProperty("content");
}
}
新建”lib-greendao”Module
新建module
選擇Android Library
輸入名稱,finish
目錄結構如下
在app/build.gradle中配置如下
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.green.test"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
//引用被生成dao的library
compile project(':lib-greendao')
}
在lib-greendao/build.gradle中配置如下
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets{
main {
//配置java代碼路徑
java.srcDirs = ['src/main/java', 'src/main/java-gen']
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//引用greendao主包
compile 'org.greenrobot:greendao:2.2.0'
}
運行MyClass就可以得到自動生成的類啦~~~
仿QQ消息列表item橫向滑動刪除ListView中item側滑刪除在最近的項目中,我的ListView中item選項是長按刪除的效果(Android的通常做法長按或點擊
說明: 視圖列表(ListView和ListActivity)與AutoComplete、Spinner類似,它們都需要一個供顯示的列表項,可以需
時間過得好快,轉眼就是12月了。工作了之後,發現節奏停不下來,像是被上了發條,再也由不得自己。工作日如流水,周末更是轉瞬即逝。其實想想也是有時間的,只不過沒
當Android系統捕獲到用戶的各種輸入事件後,如何准確的傳遞給真正的需要這個事件的控件?Android提供了一整套完善的事件傳遞、處理機制,來幫助開發者完成准確的事件分