private void updateList(String keyWords) {
    List<AppInfo> appInfoList = new ArrayList<AppInfo>();
    if (TextUtils.isEmpty(keyWords)) {
      mAppListAdapter.setAppInfoList(appInfoList);
      setToastTxt(getResources().getString(R.string.dial_or_long_click_search_app));
      return;
    }

    String stringNumber = null;
    for (AppInfo appInfo : mAppInfoList) {
      stringNumber = mDialpadView.getStringsNumber(appInfo.getAppFirstSpell());
      System.out.println(
          "====== firstSpell == "
              + appInfo.getAppFirstSpell()
              + " stringNumber == "
              + stringNumber
              + " keyWords == "
              + keyWords);
      if (stringNumber.startsWith(keyWords)) {
        appInfoList.add(appInfo);
      }
    }

    showResult(appInfoList);
  }
  private void findViews() {
    mAppListView = (ListView) findViewById(R.id.appListViewId);
    mToastTxtView = (TextView) findViewById(R.id.toastTxtId);
    mAppListAdapter = new AppListAdapter(this);
    mDialpadView = (T9View) findViewById(R.id.appDialerId);
    mDialpadView.setOnKeyClickListener(
        new OnKeyClickListener() {
          @Override
          public void onSearchText(String keyWords) {
            System.out.println("====== onSearchText keyWords == " + keyWords);
            updateList(keyWords);
          }

          @Override
          public void onClickNumber(String number) {
            System.out.println("====== onClickNumber number == " + number);
          }

          @Override
          public void onClickDelete() {
            System.out.println("====== onClickDelete");
          }

          @Override
          public void onClickBack() {
            System.out.println("====== onClickBack");
            finish();
          }

          @Override
          public void onClickVoice() {
            startRecong();
          }
        });

    mAppListView.setAdapter(mAppListAdapter);
    mAppListView.setOnItemClickListener(
        new OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            AppInfo appInfo = mAppListAdapter.getAppInfoList().get(position);
            appInfo.setOpenCnt(appInfo.getOpenCnt() + 1);
            System.out.println(
                "====== onAddDialCharacter packageName == "
                    + appInfo.getPackageName()
                    + " className == "
                    + appInfo.getClassName());
            Intent intent = new Intent();
            intent.setFlags(
                Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
            intent.setComponent(
                new ComponentName(appInfo.getPackageName(), appInfo.getClassName()));
            startActivity(intent);

            // 更新打开次数
            List<AppInfo> updateAppInfoList = new ArrayList<AppInfo>();
            updateAppInfoList.add(appInfo);
            mAppManager.addAppInfoList(updateAppInfoList);
          }
        });

    mAppManager = new APPManager(this);
  }