2012-11-20 92 views
0

我正在为android创建锁定屏幕应用程序,但我无法在输入正确密码时完成活动。该代码仅适用于密码为一个字符的情况;否则,它不解锁。我认为这与我如何修改全局变量有关。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

-使用equals()方法比较。

-爪哇Objects使用比较了equals()方法,以及String是一个对象,所以其也应该遵循相同的趋势对象。

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

-而只是一个忠告,它总是更好地使用char[](即字符数组),用于存储密码,而不是String

如:

if (guess.equals(password)){ 


}