2011-12-02 79 views
-1

請如何將此代碼應用於我的android應用程序。我正在通過輸入正確的密碼來提供訪問用戶的應用程序。 我似乎得到一個錯誤與控制檯如何在android中使用控制檯

public static void main (String args[]) throws IOException { 

     Console c=System.console(); 

     String login = c.readLine("Enter your login: "); 
     char [] oldPassword = c.readPassword("Enter your old password: "); 

     if (verify(login, oldPassword)) { 
      boolean noMatch; 
      do { 
       char [] newPassword1 = 
        c.readPassword("Enter your new password: "); 
       char [] newPassword2 = 
        c.readPassword("Enter new password again: "); 
       noMatch = ! Arrays.equals(newPassword1, newPassword2); 
       if (noMatch) { 
        c.format("Passwords don't match. Try again.%n"); 
       } else { 
        change(login, newPassword1); 
        c.format("Password for %s changed.%n", login); 

       } 
       Arrays.fill(newPassword1, ' '); 
       Arrays.fill(newPassword2, ' '); 
      } while (noMatch); 
     } 

     Arrays.fill(oldPassword, ' '); 

    } 

    //Dummy change method. 
    static boolean verify(String login, char[] password) { 
     // this method always returns true in this example. 
     // modify this method to verify password according to your rules. 
     return true; 
    } 

    //Dummy change method. 
    static void change(String login, char[] password) { 
     // modify this method to change password according to your rules. 
    } 
} 
+0

但是,爲什麼你想從控制檯讀取? Android是基於GUI的平臺。其次,在Android中沒有'main'這樣的東西。 – havexz

+0

我知道這是一個完整的java code.I想知道如果有反正我可以對此代碼進行修改,以便我可以將它應用到我的android應用程序。或者,如果您知道一種更好的方法,我可以讓我的應用程序創建一個新的密碼,當用戶想要更改應用程序的密碼時,它將被設置爲舊密碼。拿一個進入adroid手機的屏幕鎖碼的例子(它沒有默認代碼,但是當你第一次輸入代碼時,下一次它會使代碼成爲舊代碼) –

回答

1

是的,你可以重複使用您verifychange的API爲Android,但你已經放棄任何在main方法。

在Android上,您將創建一個Activity,其中有三個EditText(用於隱藏用戶文本使用android:inputType="textPassword"),每個都有一個。

  • 舊密碼
  • 新密碼
  • 確認新密碼

然後你就會有一個按鈕調用它Change Password。按此Change Password按鈕可以添加onClickListenr。當用戶按下這個按鈕時,您將從EditText獲取文本值,然後用戶verifychange apis來完成實際工作。

您也可以選擇一個Cancel按鈕。

下面是屏幕的外觀:

enter image description here

片段的處理Change按鈕:

// Declared in your Activity class. 
EditText editTextOldPass; 
EditText editTextNewPass; 
EditText editTextNewPassAgain; 

String login = ""; 


public void onCreate(Bundle savedInstanceState) { 

    editTextOldPass = (EditText) findViewById(R.id.editTextOldPass); 
    editTextNewPass = (EditText) findViewById(R.id.editTextNewPass); 
    editTextNewPassAgain = (EditText) findViewById(R.id.editTextNewPassAgain); 
    Button buttonChange = (Button) findViewById(R.id.buttonChange); 

    buttonChange.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      if (editTextNewPass.getText().equals(editTextNewPassAgain)) { 
       if (verify(login, editTextOldPass.getText().toString().toCharArray())) 
        change(login, editTextNewPass.getText().toString().toCharArray()); 
      } else { 
       Log.i("PasswordActivity", "Passwords don't match. Try again."); 
      } 
     } 

    }); 
} 
+0

非常感謝。我已經完成了但是無法使代碼正常工作。如果您可以粘貼您的編輯代碼,我將不勝感激。 –

+0

謝謝Kasper,我會爲此努力並希望它能解決所有問題,將讓您知道。 –