/**
  * 描述:根据ID查询数据
  *
  * @param id
  * @return
  */
 public LocalUser queryDataById(int id) {
   // (1)获取数据库
   userDao.startReadableDatabase(false);
   LocalUser u = (LocalUser) userDao.queryOne(id);
   userDao.closeDatabase(false);
   return u;
 }
  /**
   * 描述:查询数据
   *
   * @throws
   */
  public void queryData() {
    // (1)获取数据库
    userDao.startReadableDatabase(false);
    // (2)执行查询
    List<LocalUser> userListNew =
        userDao.queryList(
            null,
            null,
            null,
            null,
            null,
            "create_time desc limit "
                + String.valueOf(pageSize)
                + " offset "
                + String.valueOf((pageNum - 1) * pageSize),
            null);
    // (3)关闭数据库
    userDao.closeDatabase(false);

    userList.clear();
    if (userListNew != null) {
      userList.addAll(userListNew);
    }

    myListViewAdapter.notifyDataSetChanged();
    checkPageBar();
  }
  /**
   * 描述:删除数据
   *
   * @param id
   */
  public void delData(int id) {

    // (1)获取数据库
    userDao.startWritableDatabase(false);
    // (2)执行查询
    userDao.delete(id);
    // (3)关闭数据库
    userDao.closeDatabase(false);

    queryData();
  }
  /**
   * 描述:查询数量
   *
   * @throws
   */
  public void queryDataCount() {
    // (1)获取数据库
    userDao.startReadableDatabase(false);
    // (2)执行查询
    totalCount = userDao.queryCount(null, null);
    // (3)关闭数据库
    userDao.closeDatabase(false);

    total.setText("总条数:" + String.valueOf(totalCount));
    current.setText("当前页:" + String.valueOf(pageNum));
    checkView();
    mListViewForPage.setVisibility(View.VISIBLE);
  }
  /**
   * 描述:保存数据
   *
   * @param u
   * @throws
   */
  public void saveData(LocalUser u) {
    // (1)获取数据库
    userDao.startWritableDatabase(false);
    // (2)执行查询
    long id = userDao.insert(u);
    // (3)关闭数据库
    userDao.closeDatabase(false);

    // showToast("插入数据成功,ID:"+id);
    // 插入数据成功
    if (id != -1) {
      // 查询数据
      queryData();
    }
  }
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setAbContentView(R.layout.db_sample);

    AbTitleBar mAbTitleBar = this.getTitleBar();
    mAbTitleBar.setTitleText(R.string.db_inside_name);
    mAbTitleBar.setLogo(R.drawable.button_selector_back);
    mAbTitleBar.setTitleBarBackground(R.drawable.top_bg);
    mAbTitleBar.setTitleTextMargin(10, 0, 0, 0);
    mAbTitleBar.setLogoLine(R.drawable.line);

    application = (MyApplication) abApplication;

    // 初始化数据库操作实现类
    userDao = new UserInsideDao(DBInsideSampleActivity.this);

    // (1)获取数据库
    userDao.startReadableDatabase(false);
    // (2)执行查询
    userList =
        userDao.queryList(
            null,
            null,
            null,
            null,
            null,
            "create_time desc limit " + String.valueOf(pageSize) + " offset " + 0,
            null);
    totalCount = userDao.queryCount(null, null);
    // (3)关闭数据库
    userDao.closeDatabase(false);

    // 获取ListView对象
    mListView = (ListView) this.findViewById(R.id.mListView);
    // 分页栏
    mListViewForPage = (LinearLayout) this.findViewById(R.id.mListViewForPage);
    // 上一页和下一页的按钮
    preView = (Button) this.findViewById(R.id.preView);
    nextView = (Button) this.findViewById(R.id.nextView);
    // 分页栏显示的文本
    total = (TextView) findViewById(R.id.total);
    current = (TextView) findViewById(R.id.current);

    // 创建一个HeaderView用于向数据库中增加一条数据
    View headerView = mInflater.inflate(R.layout.db_list_header, null);
    // 加到ListView的顶部
    mListView.addHeaderView(headerView);
    // 使用自定义的Adapter
    myListViewAdapter = new UserDBListAdapter(this, userList);
    mListView.setAdapter(myListViewAdapter);

    if (userList == null || userList.size() == 0) {
      // 无数据隐藏分页栏
      mListViewForPage.setVisibility(View.GONE);
    } else {
      total.setText("总条数:" + String.valueOf(totalCount));
      current.setText("当前页:" + String.valueOf(pageNum));
      checkView();
      mListViewForPage.setVisibility(View.VISIBLE);
    }

    // 增加记录的按钮
    final Button addBtn = (Button) headerView.findViewById(R.id.addBtn);
    // 增加的字段数据
    final EditText mEditText = (EditText) headerView.findViewById(R.id.add_name);
    addBtn.setOnClickListener(
        new OnClickListener() {
          @Override
          public void onClick(View v) {
            // 获取用户输入的数据
            String name = mEditText.getText().toString();
            if (name != null && !"".equals(name.trim())) {
              // 增加一条数据到数据库
              LocalUser u = new LocalUser();
              u.setName(name);
              saveData(u);
            } else {
              showToast("请输入名称!");
            }
          }
        });

    // 上一页事件
    preView.setOnTouchListener(
        new Button.OnTouchListener() {
          @Override
          public boolean onTouch(View arg0, MotionEvent arg1) {
            switch (arg1.getAction()) {
              case MotionEvent.ACTION_DOWN:
                preView();
                break;
              case MotionEvent.ACTION_MOVE:
                break;
              case MotionEvent.ACTION_UP:
                break;
              case MotionEvent.ACTION_CANCEL:
                break;
              default:
                break;
            }
            return true;
          }
        });

    // 下一页事件
    nextView.setOnTouchListener(
        new Button.OnTouchListener() {
          @Override
          public boolean onTouch(View arg0, MotionEvent arg1) {
            switch (arg1.getAction()) {
              case MotionEvent.ACTION_DOWN:
                nextView();
                break;
              case MotionEvent.ACTION_MOVE:
                break;
              case MotionEvent.ACTION_UP:
                break;
              case MotionEvent.ACTION_CANCEL:
                break;
              default:
                break;
            }
            return true;
          }
        });
  }
 /**
  * 更新数据 描述:TODO
  *
  * @param u
  */
 public void updateData(LocalUser u) {
   // (1)获取数据库
   userDao.startWritableDatabase(false);
   userDao.update(u);
   userDao.closeDatabase(false);
 }