2016-05-02 18 views
-3

的EditText字符串輸入值,我想輸入一個字符串,我想要得到的byte []值,如果我給一個固定值的字符串是這樣的:以字節[]由用戶

String myinput = "SampleString"; 
byte[] keyValue = myinput.getBytes(); 

我能夠得到的byte []值,但如果我從像編輯文本輸入:

String myinput = "SampleString"; 
mEdit1 = (EditText)findViewById(R.id.editText1); 
myinput = mEdit1.getText().toString(); 
keyValue = myinput.getBytes(); 

然後,我沒有得到的byte []值。

下面是代碼中的一個部分,在那裏需要字節[]值:

public Key generateKey() { 

    byte[] keyValue; 
    String aeskey = "ASecureSecretKey"; 
    mEdit1 = (EditText)findViewById(R.id.editText1); 
    aeskey = mEdit1.getText().toString(); 
    keyValue = aeskey.getBytes(); 

Key key = new SecretKeySpec(keyValue, algorithm); 
return key; 
} 

此工作正常時的字符串具有固定值,但是當所述的EditText可編輯被轉換toString()和然後.getBytes ()用於我沒有得到字節[]值。

+0

爲什麼不,可能你沒有輸入任何「EditText」? –

+0

我在EditText中輸入了「SampleString」作爲輸入,但它仍然沒有得到byte []值。非常奇怪的問題,必須以某種方式解決它。 –

+0

那麼keyValue的值是多少?你有沒有試過記錄? –

回答

0

這是因爲EditText爲空。您必須使用setText()方法將文本設置爲EditText或在您的xml中使用text="SampleString"

試試這個,

String myinput = "SampleString"; 

mEdit1 = (EditText)findViewById(R.id.editText1); 
mEdit1.setText(myinput); 

myinput = mEdit1.getText().toString(); 
keyValue = myinput.getBytes(); 
0

您的EditText領域最有可能是空的。

String myinput = "SampleString"; 
mEdit1 = (EditText)findViewById(R.id.editText1); 
myinput = mEdit1.getText().toString(); 
keyValue = myinput.getBytes(); 

在獲取字節之前檢查爲空的myinput