public class MainActivity extends Activity implements OnClickListener {private ORMLiteDatabaseHelper mDatabaseHelper;private Dao<MyClass, Integer> mClassDao;private Dao<Student, Integer> mStudentDao;private boolean temp;ListView list_view;EditText edit;Object ob;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);list_view = (ListView) findViewById(R.id.list_view);Button create = (Button) findViewById(R.id.create);Button query = (Button) findViewById(R.id.query);edit = (EditText) findViewById(R.id.edit);create.setOnClickListener(this);query.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.create:temp = true;MyAsyncTask mAsyncTask = new MyAsyncTask();mAsyncTask.execute();//执行语句break;case R.id.query:Integer id = Integer.parseInt(edit.getText().toString());temp = false;if (id <= 3 && id >= 1) {MyAsyncTask mTask = new MyAsyncTask();mTask.execute(id);}else{Toast.makeText(this, "班级不存在", Toast.LENGTH_SHORT).show();}break;default:break;}}public class MyAsyncTask extends AsyncTask {public MyAsyncTask() {}//doInBackground 繁琐事件多数在这里执行处理@Overrideprotected List<Student> doInBackground(Object... params) {if (temp) {create();return null;} else {ForeignCollection<Student> student = query((Integer) params[0]);List<Student> result = new ArrayList<Student>();for (Student stu : student) {result.add(stu);}return result;}}//onPostExecute 可直接设置UI界面@Overrideprotected void onPostExecute(Object result) {if (result == null) {Toast.makeText(MainActivity.this, "创建数据库成功", Toast.LENGTH_SHORT).show();} else {Toast.makeText(MainActivity.this, "查询成功", Toast.LENGTH_SHORT).show();List<Student> list = (List<Student>) result;list_view.setAdapter(new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, list));}}}public void create() {mDatabaseHelper = ORMLiteDatabaseHelper.getInstance(this);mClassDao = mDatabaseHelper.getClassDao();mStudentDao = mDatabaseHelper.getStudentDao();for (int i = 1; i < 4; i++) {MyClass myclass = new MyClass();myclass.myclass_id = i;myclass.name = i + "班";try {mClassDao.createIfNotExists(myclass);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}String[] studentName = { "王二", "张三", "李四", "刘五", "赵六" };String[] studentSex = { "男", "女" };Random rand = new Random();for (int j = 0; j < 5; j++) {Student stu = new Student();stu.student_id = j;stu.name = studentName[rand.nextInt(5)];stu.age = 18 + j;stu.sex = studentSex[rand.nextInt(2)];stu.mclass = myclass;try {mStudentDao.createIfNotExists(stu);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}public ForeignCollection<Student> query(Integer id) {try {MyClass mclass = mClassDao.queryForId(id);ForeignCollection<Student> student = mclass.student;return student;} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}}

更多相关文章

  1. 【Android(安卓)电量优化】电量优化特性 ( Doze 低电耗模式 | St
  2. 解决Android启动显示空白界面的问题,自定义进入软件前的背景图片
  3. Android(安卓)利用ViewPager+GridView,仿美团首页导航栏分类布局
  4. Android添加全屏启动画面
  5. Android(安卓)点击通知栏消息 跳转到指定的Fragment界面
  6. android 多表管理查询
  7. Android(安卓)应用程序中的界面控件与程序控制
  8. android 如何打开系统联系人界面
  9. Ionic3学习笔记(九)关于 Android(安卓)端软键盘弹出后界面被压缩的

随机推荐

  1. Android开发之adb && 破解开屏图案 && 代
  2. Android查找未用类和方法
  3. Android(安卓)APK的签名与重新签名
  4. Java侵权诉讼Google获胜,Android厚积薄发
  5. Android下的Java之interface接口泛型 动
  6. Android上面搭建 Opencv的开发环境+摄像
  7. Android调用WCFRest
  8. 【Android】高德定位错误总结
  9. 【Android快捷开发笔记系列】——Data Bi
  10. Android中AsyncTask的处理后台耗时操作(如