我想输入一个字符串,我想得到它的byte []值如果我像这样给String一个固定的值:
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 []值。
以下是需要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;
}
当String具有固定值但是当EditText可编辑转换为String()然后使用.getBytes()时,这没有得到byte []值。
答案 0 :(得分: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();
答案 1 :(得分:0)
你的EditText字段很可能是空的。
String myinput = "SampleString";
mEdit1 = (EditText)findViewById(R.id.editText1);
myinput = mEdit1.getText().toString();
keyValue = myinput.getBytes();
在获取字节之前检查myinput
的空值。