PIN身份验证方法实现

时间:2015-12-15 20:14:52

标签: android

我正在尝试制作PIN身份验证方法。 我有9个按钮[1到9],用户可以插入PIN码。

public WindowManager winManager;
public RelativeLayout wrapperView;
public Button button1,button2,button3,button4,button5,button6,button7,button8,button9;
public ArrayList<Integer> PIN;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    PIN=new ArrayList<>();
    WindowManager.LayoutParams localLayoutParams = new WindowManager.LayoutParams( WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
            PixelFormat.TRANSLUCENT);
    this.winManager = ((WindowManager)getApplicationContext().getSystemService(WINDOW_SERVICE));
    this.wrapperView = new RelativeLayout(getBaseContext());
    getWindow().setAttributes(localLayoutParams);
    View.inflate(this, R.layout.activity_main, this.wrapperView);
    this.winManager.addView(this.wrapperView, localLayoutParams);
    button1 = (Button)wrapperView.findViewById(R.id.button1);
    button2 = (Button)wrapperView.findViewById(R.id.button2);
    button3 = (Button)wrapperView.findViewById(R.id.button3);
    button4 = (Button)wrapperView.findViewById(R.id.button4);
    button5 = (Button)wrapperView.findViewById(R.id.button5);
    button6 = (Button)wrapperView.findViewById(R.id.button6);
    button7 = (Button)wrapperView.findViewById(R.id.button7);
    button8 = (Button)wrapperView.findViewById(R.id.button8);
    button9 = (Button)wrapperView.findViewById(R.id.button9);
    button1.setOnClickListener(mButton1_OnClickListener);
    button2.setOnClickListener(mButton1_OnClickListener);
    button3.setOnClickListener(mButton1_OnClickListener);
    button4.setOnClickListener(mButton1_OnClickListener);
    button5.setOnClickListener(mButton1_OnClickListener);
    button6.setOnClickListener(mButton1_OnClickListener);
    button7.setOnClickListener(mButton1_OnClickListener);
    button8.setOnClickListener(mButton1_OnClickListener);
    button9.setOnClickListener(mButton1_OnClickListener);
}

final View.OnClickListener mButton1_OnClickListener = new View.OnClickListener() {
    public void onClick(final View v){
        switch(v.getId()){
            case R.id.button1:
                PIN.add(1);
            case R.id.button2:
                PIN.add(2);
            case R.id.button3:
                PIN.add(3);
            case R.id.button4:
                PIN.add(4);
            case R.id.button5:
                PIN.add(5);
            case R.id.button6:
                PIN.add(6);
            case R.id.button7:
                PIN.add(7);
            case R.id.button8:
                PIN.add(8);
            case R.id.button9:
                PIN.add(9);
        }
        if (PIN.size() == 4){ //
            winManager.removeView(wrapperView);
            wrapperView.removeAllViews();

        }
    }
};

在点击监听器上我试图知道用户插入的PIN何时有四个数字,但是如果我不知道原因,它就不会进入。

1 个答案:

答案 0 :(得分:3)

你忘了添加中断,这就是为什么插入与案例匹配的时间,即。如果你点击button1,它将插入值仍为案例9,然后是PIN.size()= 9

Nothing

添加休息;每个案例