0

我正在为 android 创建一个锁屏应用程序,但是当输入正确的密码时,我无法让活动完成。该代码仅在密码为一个字符时才有效;否则,它不会解锁。我认为这与我如何修改全局变量有关。

这是我用来测试的代码。它应该通过按顺序触摸两个文本视图来解锁,但没有。

public class LockScreen extends Activity implements OnClickListener {

String password = "cd";
String guess;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.lock_layout);

    TextView c = (TextView) findViewById(R.id.c);
    TextView d = (TextView) findViewById(R.id.d);

    c.setOnClickListener(this);
    d.setOnClickListener(this);

}

public void onClick(View v) {

    switch(v.getId()) {
    case R.id.c:
        if (guess == null) {
            guess = "c";
        } else {
            guess += "c";
        }
        break;
    case R.id.d:
        if (guess == null) {
            guess = "d";
        } else {
            guess += "d";
        }
        break;
    }


    if (guess == password) {
        finish();
    }
}
4

1 回答 1

0

-使用equals()方法进行比较。

-Java Objects中使用equals()方法进行比较,并且String是一个对象,因此它也应该遵循与对象相同的趋势。

- ==用于查看 2 个或更多Object Reference Variables是否指向同一个对象或不在堆上。

-只是一条建议,它总是更好地使用char[](即字符数组)来存储密码而不是String.

例如:

if (guess.equals(password)){


}
于 2012-11-20T05:27:15.403 回答