取用户输入的EditText字符串的byte []值

时间:2016-05-02 09:56:04

标签: java android

我想输入一个字符串,我想得到它的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 []值。

2 个答案:

答案 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的空值。