我正在为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();
}
}
答案 0 :(得分:0)
- 使用equals()
方法进行比较。
- 使用Objects
方法比较 Java equals()
,String
是一个对象,所以它也应该遵循与对象相同的趋势。
- ==
用于查看2个或更多Object Reference Variables
是否指向同一个对象或不在堆上。
- 只是一条建议,最好使用char[]
(即char数组)来存储密码,而不是String
。
<强>例如强>
if (guess.equals(password)){
}