`
mysfzj_web
  • 浏览: 14600 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

 
阅读更多

 

 


效果图
初始



 
输入数据 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_PERSON, new String[] { "_id",
                               "name", "age" }, null, null, null, null, null, null);
                  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;
              
                     
              }

       }
  • 大小: 12.4 KB
  • 大小: 10.5 KB
  • 大小: 14.8 KB
  • 大小: 17.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics