2016-09-16 146 views
0

我一直在嘗試基於GHOST遊戲構建一個應用程序。 我寫了一個onKeyUp函數,它只接受小寫字母並將其添加到名爲wordfragment的字符串中,然後調用函數computerTurn。但是我在第一次成功運行後看到過,即調用computerTurn函數並從computerturn函數獲取return語句,它(onkeyup)不會再次運行。 這裏我的代碼來onKeyUp函數。onKeyUp函數不調用第二次

@Override 
public boolean onKeyUp(int KeyCode, KeyEvent event) { 
    char ch = (char)event.getUnicodeChar(); 
    if(!(ch >= 'a' && ch <='z' )) { 
     return super.onKeyUp(KeyCode, event); 
    } 
    wordFragment = wordFragment + ch; 
    label.setText(COMPUTER_TURN); 
    text.setText(wordFragment); 

    userTurn = false; 
    computerTurn(); 
    return true; 
} 

和我的代碼computerTurn功能

private boolean computerTurn() { 
    if(wordFragment.length() >= 4 && dictionary.isWord(wordFragment)){ 
     label.setText("Computer wins"); 
     // challenge.setEnabled(false); 
     return true; 
    } 
    else { 
     String word = dictionary.getAnyWordStartingWith(wordFragment.toLowerCase()); 
     if(word!=null){ 
      Toast.makeText(GhostActivity.this, "comp word found", Toast.LENGTH_SHORT).show(); 
      wordFragment += word.charAt(wordFragment.length()); 
     } 
     else{ 
      Toast.makeText(GhostActivity.this, "comp word not found", Toast.LENGTH_SHORT).show(); 
      label.setText("User Wins!!"); 
      //challenge.setEnabled(false); 
      // wordFragment += (char)(random.nextInt(26) + 61); 
     } 
    } 
    // Do computer turn stuff then make it the user's turn again 
    userTurn = true; 
    label.setText(USER_TURN); 
    text.setText(wordFragment); 
    Toast.makeText(GhostActivity.this, "return true", Toast.LENGTH_SHORT).show(); 
    return true; 
} 

回答

0

的Android softkeyboards很少使用的關鍵事件。使用Android軟鍵盤的正確方法是通過InputConnection。只有硬件密鑰通常發佈關鍵事件。基本上你是用Windows或網頁編寫這個正確的方式,但是對於Android來說是錯誤的。

相關問題