Android PIN认证方法的实现

Android PIN认证方法的实现,android,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

我正在尝试一种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();

        }
    }
};
公共WindowManager winManager;
公共RelativeLayout wrapperView;
公共按钮按钮1、按钮2、按钮3、按钮4、按钮5、按钮6、按钮7、按钮8、按钮9;
公共阵列列表PIN;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PIN=新的ArrayList();
WindowManager.LayoutParams localLayoutParams=新建WindowManager.LayoutParams(WindowManager.LayoutParams.TYPE\u系统错误,
WindowManager.LayoutParams.FLAG\u不可聚焦,
像素格式(半透明);
this.winManager=((WindowManager)getApplicationContext().getSystemService(窗口服务));
this.wrapperView=新的RelativeLayout(getBaseContext());
getWindow().setAttributes(localLayoutParams);
视图.充气(此,R.layout.activity_main,此.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);
按钮1.setOnClickListener(mButton1\u OnClickListener);
按钮2.setOnClickListener(mButton1\u OnClickListener);
按钮3.setOnClickListener(mButton1\u OnClickListener);
按钮4.setOnClickListener(Mbuton1\u OnClickListener);
按钮5.setOnClickListener(Mbuton1\u OnClickListener);
按钮6.setOnClickListener(Mbuton1\u OnClickListener);
按钮7.setOnClickListener(Mbuton1\u OnClickListener);
按钮8.setOnClickListener(Mbuton1\u OnClickListener);
按钮9.setOnClickListener(Mbuton1\u OnClickListener);
}
final View.OnClickListener mbuton1\u OnClickListener=new View.OnClickListener(){
公共void onClick(最终视图v){
开关(v.getId()){
案例R.id.button1:
增加第(1)款;
案例R.id.按钮2:
增加第(2)款;
外壳R.id.按钮3:
增加第(3)款;
外壳R.id.按钮4:
增加第(4)款;
外壳R.id.按钮5:
增加第(5)款;
外壳R.id.按钮6:
增加第(6)款;
外壳R.id.按钮7:
增加第(7)款;
外壳R.id.按钮8:
增加第(8)款;
外壳R.id.按钮9:
增加(9);
}
如果(PIN.size()==4){//
removeView(wrapperView);
wrapperView.removeAllViews();
}
}
};

单击listener我试图知道用户插入的PIN何时有四个数字,但它没有输入if,我也不知道为什么。

您忘记添加break,这就是为什么它会插入与大小写匹配的时间数,即,如果单击按钮1,它将插入值仍然是大小写9,然后PIN.size()=9


增加中断;对于每个案例

由于案例的错误,有一个旁注:请看一看,以浓缩您的18个按钮分配行。我不知道有多少次我一直在编写一个
开关
/
案例
语句,忘记输入
中断
s,然后想知道为什么它会
中断
  case R.id.button1:
     PIN.add(1);
     break;