2013-06-27 3 views
0

EditText 사용자가 16 진수를 입력하고이를 십진수로 변환하여 TextView에 표시하려고하지만 예외 때문에 TextView에 16 진수를 표시 할 수 없습니다. "unable 정수로 '문자열을'구문 분석 나는 단지 TextView에 번호를 표시 할 수 있습니다 내가 문자를 입력 할 때 예외를 throw 여기 16 진수 입력을 10 진수로 변환하는 방법은 무엇입니까?

코드의 조각 것은 :...

EditText edText1 = (EditText) findViewById(R.id.editText1); 
TextView result = (TextView) findViewById(R.id.textView1); 
result.setText(""+ Integer.parseInt(edText1.getText().toString(), 16)); 
+2

그래서 구문 분석하려는 텍스트는 무엇입니까? – John3136

+0

edText1의 내용은 16 진수는 문자를 포함 할 수 있고 문자를 정수로 변환 할 수 없으므로 –

+0

edText1 (키보드 입력)에 텍스트가 이미 설정되어 있고 a ~ f의 숫자와 문자가 포함되어 있기 때문에 – tallito

답변

2

그것은 나에게 보인다 edText1.getText()의 초기 사례로 인해 오류가 발생하는 것처럼 보입니다. textfield이 비어도 값을 저장합니다 (""). ""은 여전히 ​​String이고 아직 내용이 있지만 정수가 아닙니다.

result.setText("" + Integer.parseInt("", 16)); 

"" 명확 정수 또는 16 진수 아니다, 그러나 그것은 여전히 ​​그 다음 오류를 던지고, 그 포맷에 문제가있어 String입니다 : 당신이 그것에 Integer.parseInt()을하고있는 때, 다음과 같은 뭔가를해야만하고있어 .

+0

Ok 그 때 내가 넣어 result.setText (""+ Integer.parseInt (edText1.getText(). toString(), 16)); edText1에 이미 사용자가 입력 한 텍스트가 포함되어 있습니다 (예 : "10AE" edText1.getText(). toString() 대신 문자열을 넣으면 응용 프로그램이 작동합니다! 예를 들어, 넣으면 : result.setText (""+ "10e", 16)); 결과 TextView에 '270'이 표시되고 정상입니다. 도와주세요! – tallito

관련 문제