마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

숫자비교후 각각 텍스트뷰에 넣기

0 추천
5개의 텍스트뷰를 준비한 후 EditText에서 숫자를 입력받아서 숫자들을 비교한후 작은 순서대로 각각의 텍스트뷰에 보여주려면 어떻게 코딩을 짜야할까요?

예) 5 4 3 2 1 을 입력받고 /텍스트뷰1 : 1/ /텍스트뷰2 : 2/ /텍스트뷰3 : 3/ /텍스트뷰 4: 4/ /텍스트뷰5 : 5/ 를 출력
혀빙 (360 포인트) 님이 2017년 12월 3일 질문
과제는 본인 힘으로 해결하세요..=ㅇ=;
힌트를 드리면,
1. 입력은 EditText로 받을 수 있습니다.
2. 정렬은 java sort로 검색 해 보세요.
3. 출력은 TextView, EditText 모두 setText를 통해 가능합니다.
과제는 아니구요... 개인적으로 구글맵을 사용해 어플을 만들어보고있는데 현재거리와 마커의 위치를 계산하였는데 가까운순으로 마커마다 각각 텍스트뷰위에 마커이름을 배치하고 싶어서 그렇습니다..

1개의 답변

+1 추천
구글링 하시면 오름차순/내림차순에 관한 자료는 많이 나옵니다.

숫자 비교이니 인트형 배열하나 만드셔서 거기다가 입력한 숫자들을 넣으시면 되겠네요.

editText에 입력하신다면 editText getText등으로 문자열을 가져올 수 있는데 이걸 인트형으로

변환하시고 배열에 넣으면 되겟죠..

그리고 비교작업이 끝나면 값을 차례대로 텍스트뷰1,2,3,4,5에 setText하시면 됩니다.
ㅇㅇ 님이 2017년 12월 4일 답변
int[] a = {A,B,C};
식으로 저장해서
Array.sort(a);
를 하였는데 이후에
txt1.setText(a[0]); txt2.setText(a[1]); txt3.setText(a[2]);이렇게 했었는데
오류가 생겼습니다 ㅠ
setText할 때 string형 변수를 사용하셔야 합니다.아마 int형 그대로 쓰시려다가 에러나신거같은데 setText(Integer.toString(a[0])); 혹은 setText(a[0]+"");로 해보세요.
먼저 댓글 달아주신 분의 말씀처럼 TextView.setText(int) 는 Resource ID 값을 찾게 되는데, 해당ID의 값이 존재하지 않아 에러가 발생하는 것 같습니다. int형이 아닌 String.valueOf() 같이 string 형식으로 변환하셔서 setText() 하시면 될 것 같습니다.
아 감사합니다! 해결됬어요!
...