根据公司项目~搭建开发的框架(三)

本文详细介绍了数据增删查API的实现过程,包括点击事件触发的增删查操作,以及相应的代码逻辑。通过实例展示了如何在Android应用中使用自定义服务与任务处理机制来完成数据的增删查操作,并通过消息队列进行异步处理,确保了UI的响应性和系统的稳定性。

 

 


效果图
初始



 
输入数据 Add



 
显示数据 Query



 
实现过程的主要代码:
  • Click事件中  case R.id.add:
                         Person person=new Person();
                         person.name=name.getText().toString();
                         person.age=Integer.valueOf(age.getText().toString());
                         Map param=new HashMap();
                         param.put("person", person);
                         task = new Task(Config.TASK_ADD, param);
                         MainService.addNewTask(task);
                         break;
                  case R.id.query:           
                         task = new Task(Config.TASK_QUERY, null);
                         MainService.addNewTask(task);
                         break;
  • 开始执行任务 public static void addNewTask(final Task ts) {
                  new Thread() {
                         public void run() {
                               mainService.doTask(ts);
                         }
                  }.start();
           }

           public void doTask(Task task) {
                  if (task == null)
                         return;
                  Map param = task.getTaskParam();
                  ArrayList list = new ArrayList<Object>();
                  Message message = handler.obtainMessage();
                  int taskid = task.getTaskID();
                  switch (taskid) {
                  case Config.TASK_ONE:
                         String test = "test";
                         message.obj = test;
                         break;
                  case Config.TASK_ADD:
                         personService.insertPerson((Person)param.get("person"));
                         break;
                  case Config.TASK_QUERY:
                         list=personService.getPersonList();
                         message.obj = list;
                         break;
                  }
                  message.what = task.getTaskID();
                  handler.sendMessage(message);
           }

           
  • PersonService介绍 ,实现增加和查询的功能public ArrayList<Person> getPersonList() {

                  Cursor cursor = dbHelper.query(dbHelper.TB_PERSONnew String[] { "_id",
                               "name""age" }, nullnullnullnullnullnull);
                  ArrayList<Person> list = new ArrayList<Person>();
                  while (cursor.moveToNext()) {
                         Person person = new Person();
                         person.id = cursor.getInt(0);
                         person.name = cursor.getString(cursor.getColumnIndex("name"));
                         person.age=cursor.getInt(2);
                         list.add(person);
                  }
                  cursor.close();
                  return list;
           }
    public void insertPerson(Person person) {
                  ContentValues cv = new ContentValues();
                  cv.put("name", person.name);
                  cv.put("age", person.age);
                  dbHelper.insert(dbHelper.TB_PERSON, cv);
           }

  • 返回数据给activity  
          public Handler handler = new Handler() {

              @Override
              public void handleMessage(Message msg) {
                     super.handleMessage(msg);
                     IActivity ac = null;
                     String activityName = "";
                     switch (msg.what) {
                     case Config.TASK_ONE:
                           activityName = "AndroidTaskActivity";
                           break;
                     case Config.TASK_QUERY:
                           activityName = "AndroidTaskActivity";
                           break;
                     }
                     ac = MainService.getActivityByName(activityName);
                     ac.refresh(msg.what, msg.obj);
              }
       };
     

  • 显示在当前activity
     public void refresh(Object... param) {
              int flag = (Integer) param[0];
              switch (flag) {
              case Config.TASK_ONE:
                     String str = (String) param[1];
                     et.setText(str);
                     break;
              case Config.TASK_QUERY:
                     ArrayList ls=new ArrayList();
                     ls=(ArrayList) param[1];
                     Person P=new Person();
                     P=(Person) ls.get(1);
                     et.setText("name:  "+P.name+"  age:  "+P.age+"  id:  "+P.id);
                     break;
              
                     
              }

       }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值