0

次のように TextView バイトを設定した場合:

byte[] byteArray = { 25, 20, -101 };
TextView encrypted_text = (TextView) findViewById(R.id.encrypted);
encrypted_text.setText(new String(byteArray));

その後、25、20 を取得できますが、-101 の値は取得できません。3 番目の文字については、出力として常に -3 を取得します。

Log.v(TAG, "3rd byte: "+ (byte) encrypted_text.getText().toString().charAt(2));

PS実際には、表示されていないすべての文字に対して-3が返されます。

byteArray を TextView から取得するにはどうすればよいですか?

4

1 に答える 1

1

TextView との間で負のバイト値を格納および取得する方法がわかりました。まず、符号付きバイトを符号なしバイトに変換する必要があります。Java ではすべての型が署名されているため、手動で行う必要があります。

// remove signed bit(32nd), keep value as "next" (127+...) positive byte value
int unsignedValue = 255 - ((int)byteArray[i])&0b1111111;
于 2012-11-16T12:41:24.353 に答える