0

我正在制作一个 android 应用程序,它需要用户从我制作的按钮中输入一个 4 位数的密码,然后再确认密码。我想我可以将引脚存储为数组。

我的问题是,如何存储按下的按钮?

这是我到目前为止想出的

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 = 

}


}

}
4

3 回答 3

0

只是我们一个布尔值:

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

于 2012-11-08T19:35:38.100 回答
0

使用这样的东西怎么样?只需单击按钮并将数字添加到数组中,然后您就可以将其存储在 sharedpreferences 或其他东西中......

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;
}


}
于 2012-11-08T19:40:06.387 回答
0

您需要声明一个变量来标记引脚的下一个位置。在以下代码的情况下,您可以将引脚的下一个位置保存到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 并且 的值为ctr0 时,输入的 pin 将被保存到pin[0]
  • 当您输入第一个 pin 并且 的值为ctr1 时,输入的 pin 将被保存到pin[1]
  • 当您输入第一个 pin 并且 的值为ctr2 时,输入的 pin 将被保存到pin[2]
  • 当您输入第一个 pin 并且 的值为ctr3 时,输入的 pin 将被保存到pin[3]
于 2012-11-09T06:50:01.997 回答