Android PIN认证方法的实现
我正在尝试一种PIN认证方法。 我有9个按钮[1到9]用于用户插入PINAndroid 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
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;