我正在制作一个Android应用程序,它需要用户从我制作的按钮中输入4个数字引脚,然后在确认PIN上。我认为我可以将PIN存储为阵列。
我的问题是,如何存储按钮?
这是我到目前为止提出的
public class EnterPin extends Activity
{
public int[] pin = new int[4];
public void PinEnterd(View view)
{
int i;
for(i = 0; i < 4; i++ )
{
pin =
}
}
}
您需要声明一个变量来标记引脚的下一个位置。对于下面的代码,您可以将PIN的下一个位置保存到ctr
。
public int[] pin = new int[4];
int ctr = 0; //add this to mark the index of your pin
public void PinEnterd(View view)
{
Button btnPressed = (Button) view; //get access to the button
int value = Integer.parseInt(btnPressed.getText().toString()); //get the value of the button
pin[ctr++] = value; //save inputted value and increment counter. next position after 0 is 1.
}
- 当您输入第一个PIN和
ctr
的值为0时,输入的PIN将保存到pin[0]
。 - 当您输入第一个PIN和
ctr
的值为1时,输入的PIN将保存到pin[1]
。 - 当您输入第一个PIN和
ctr
的值为2时,输入的PIN将保存到pin[2]
。 - 当您输入第一个PIN和
ctr
的值为3时,输入的PIN将保存到pin[3]
。
只是我们一个布尔值:
private boolean isPressed = false;
public void PinEntered(View v) {
if(!isPressed) {
isPressed = true;
// Do what you like to do on a Button press here
}
如果PIN不正确或其他用户,请再次按下按钮,只需将isPressed
重置为false
如何使用类似的东西?只需单击按钮,然后将数字添加到数组之后,您可以将其存储在共享preferences或其他内容中...
public class EnterPin extends Activity implents OnClickListener{
public int[] pin = new int[4];
public Button[] buttons;
public onCreate(...){
buttons[0] = (Button)findViewById(R.id.b1);
...
buttons[9] = (Button)findViewById(R.id.b9);
buttons[0].addOnclickListener(this);
...
buttons[9].addOnclickListener(this);
}
public ... OnClickListener(View v){
switch(v.getId()){
case R.id.b1:
pin[] = 0;
break;
...
case R.id.b10:
pin[] = 9;
break;
}
}