2012-11-20 247 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)){ 


}