示例#1
0
  @Override
  public void onClick(View v) {

    switch (v.getId()) {
      case R.id.left_btn:
        if (step == STEP_1 || step == STEP_3 || step == STEP_4) {
          finish();
        } else if (step == STEP_2) {
          step = STEP_1;
          updateView();
        }
        break;

      case R.id.right_btn:
        if (step == STEP_2) {
          step = STEP_3;
          updateView();
        } else if (step == STEP_4) {

          Log.d("", "-----------------------------s---s----------------" + choosePattern);
          SharedPreferences preferences = getSharedPreferences(LOCK, MODE_PRIVATE);
          preferences
              .edit()
              .putString(LOCK_KEY, LockPatternView.patternToString(choosePattern))
              .commit();

          Intent intent = new Intent(this, LockActivity.class);
          startActivity(intent);
          finish();
        }

        break;

      default:
        break;
    }
  }
  private void updateView() {
    switch (step) {
      case STEP_1:
        {
          choosePattern = null;
          confirm = false;
          lockPatternView.clearPattern();
          lockPatternView.enableInput();
          resetTextView.setVisibility(View.INVISIBLE);
          tipTextView.setText("绘制解锁图案");
          tipTextView.setVisibility(View.VISIBLE);
        }
        break;

      case STEP_2:
        {
          tipTextView.setText("再次绘制解锁图案");
          tipTextView.setVisibility(View.VISIBLE);
          lockPatternView.clearPattern();
          lockPatternView.enableInput();
        }
        break;

      case STEP_3:
        {
          // 与第一次绘制的图案相同,成功!
          if (confirm) {
            lockPatternView.disableInput();

            GestureLockUtil.setGestureLock(LockPatternView.patternToString(choosePattern));

            // 跳转到别的界面
            if (type == TYPE_MANAGE) {
              this.setResult(RESULT_OK);
              this.finish();

            } else if (type == TYPE_REGISTER) {
              Intent intent = new Intent(this, KeeperMainActivity.class);
              this.startActivity(intent);
              this.finish();
            }

          } else {
            // 与第一次绘制的图案不同,
            resetTextView.setVisibility(View.VISIBLE);
            tipTextView.setText("与上一次绘制不一致,请重新绘制");
            tipTextView.setVisibility(View.VISIBLE);
            shakeTip();

            lockPatternView.setDisplayMode(DisplayMode.Wrong);
            clearWrongMode();

            lockPatternView.enableInput();
          }
        }

        break;

      default:
        break;
    }
  }