Android:AsyncTask
2015-11-17 19:12
489 查看
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; @Override protected 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); } @Override public 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 繁琐事件多数在这里执行处理 @Override protected 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界面 @Override protected 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 block e.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 block e.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 block e.printStackTrace(); } return null; } }
相关文章推荐
- Android群英传
- Android studio gradle配置!!!【转】
- Android Studio中如何引用图片资源
- Android上掌纹识别第一步:基于OpenCV的6种肤色分割 源码和效果图
- Android解析中国天气接口JSon数据,应用于天气查询!
- Android解析中国天气接口JSon数据,应用于天气查询!
- android动画中位置Animation.ABSOLUTE,Animation.RELATIVE_TO_SELF,Animation.RELATIVE_TO_PARENT区别
- ScrollView套ListView种种问题
- android 设计高性能的应用程序
- Android System Property分析(3):property接口实现
- Android环境配置
- android多屏设计、适配(来自官网)
- ActiveAndroid 新增字段的数据库升级
- Android 6.0 读取Mac地址
- Android ListView 添加 HeaderView后,HeaderView的布局不起作用
- Android Sqlite synchronous设置
- [Android] 随时拍图像处理部分总结及源码分享
- android LayoutInflater原理
- Android中图片缩放9path图片的使用
- MPAndroidChart——饼图