我正在尝试制作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何时有四个数字,但是如果我不知道原因,它就不会进入。
答案 0 :(得分:3)
你忘了添加中断,这就是为什么插入与案例匹配的时间,即。如果你点击button1,它将插入值仍为案例9,然后是PIN.size()= 9
Nothing
添加休息;每个案例