GreenDao的简单使用

来源:互联网 发布:淘宝查销售额 编辑:程序博客网 时间:2024/06/05 08:13


一、配置

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