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

안드로이드 spinner ArrayAdapter sort 문제

0 추천
public class MainActivity extends AppCompatActivity {
    private ArrayAdapter<String> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Spinner spinner = (Spinner) findViewById(R.id.phone_spinner);
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
        adapter.add("45656");
        adapter.add("stsat");
        adapter.add("asskjt");
        adapter.add("444");
        spinner.setAdapter(adapter);
    }
    

    public void sort(View view) {
        Spinner spinner = (Spinner) findViewById(R.id.phone_spinner);
        int count = adapter.getCount();
        String[] a = new String[count];
        String b;
        for (int i = 0; i < count; i++) {
            a[i] = adapter.getItem(i);
            if (adapter.getItem(i).compareTo(adapter.getItem(i + 1)) > 0)
            {
                a[i] = a[i+1];
                b = a[i];
                a[i+1] = b;
            }
        }
        adapter.notifyDataSetChanged();

    }
}

이렇게 sort를 할려고하는대 제가보기에는 문제가없어보이는 sort라는 버튼을 눌르면 문제가생깁니다.

익명사용자 님이 2018년 10월 16일 질문
Collection.sort() 이용해서 리스트를 먼저 sort한 결과를 어댑터에 전달해 주는 것이 나을 것 같습니다. 가능하면 원본은 건드리지 마시고 복사본을 사용하시면 더 나을 것 같습니다.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...