您的位置:首页 > 其它

GreenDao的简单使用

2017-07-05 09:03 127 查看
一、配置

1.修改gradle文件夹下的gradle-wrapper.properties修改为:

distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

2、在工程的buildgradle中导入

   dependencies {

        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'

        

    }

3、在项目的buildgradle中导入

//导入插件

apply plugin: 'com.android.application'

apply plugin: 'org.greenrobot.greendao'

//在dependencies中添加如下代码

dependencies {
    compile 'org.greenrobot:greendao:3.2.2'

}

二、工具类

public class Daosingleton {

private static Daosingleton daosingleton;

private Daosingleton() {

}

public BookDao getdao(Context context) {

DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(context, "students.db", null);
DaoMaster daoMaster = new DaoMaster(devOpenHelper.getReadableDb());
DaoSession daoSession = daoMaster.newSession();
BookDao studentsDao = daoSession.getBookDao();
return studentsDao;

}
public static Daosingleton getDaosingleton() {
if (daosingleton == null) {
synchronized (Daosingleton.class) {
if (daosingleton == null) {
daosingleton = new Daosingleton();
}
}
}
return daosingleton;
}
}

三、简单使用
public class Main2Activity extends AppCompatActivity implements View.OnClickListener, AdapterView.OnItemLongClickListener {

private Button insert;
private ProgressBar bar;
private ListView listview;
private BookDao getdao;
private MyAdapter myAdapter;
private List<Book> list=null;
private PopupWindow window;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
getdao = Daosingleton.getDaosingleton().getdao(Main2Activity.this);
initView();
initData();
}

private void initPro(final List<Book> list1) {
Handler handler=new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {

runOnUiThread(new Runnable() {
@Override
public void run() {
bar.setVisibility(View.GONE);
myAdapter.notifys(list1);
}
});
}
}, 2000);
}

private void initView() {
insert = (Button) findViewById(R.id.insert);
bar = (ProgressBar) findViewById(R.id.bar);
listview = (ListView) findViewById(R.id.listview);
/* initPro();*/
insert.setOnClickListener(this);

}

private void initData() {
list = getdao.queryBuilder().build().list();
myAdapter = new MyAdapter(Main2Activity.this, list);
listview.setAdapter(myAdapter);
myAdapter.notifys(list);
listview.setOnItemLongClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.insert:
Intent intent=new Intent(Main2Activity.this,Main3Activity.class);
startActivity(intent);
break;
}
}

@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, final int i, long l) {
View view1=View.inflate(Main2Activity.this,R.layout.view,null);
window = new PopupWindow(view1,300,300);
window.showAsDropDown(listview.getChildAt(i));
window.setBackgroundDrawable(new ColorDrawable(0));
window.setOutsideTouchable(true);
Button updata=(Button) view1.findViewById(R.id.updata);
Button delete=(Button) view1.findViewById(R.id.delete);
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Book book = list.get(i);
myAdapter.de(book);
getdao.delete(book);
myAdapter.notifys(list);
window.dismiss();
}
});
updata.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Book book = list.get(i);
getdao.delete(book);
myAdapter.de(book);
Intent intent=new Intent(Main2Activity.this,Main3Activity.class);
startActivity(intent);
window.dismiss();
}
});
return false;
}
@Override
protected void onResume() {
super.onResume();

list.clear();
list = getdao.queryBuilder().list();
initPro(list);

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