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

onActivityResult 검색결과 반영하여 출력하는 것 질문입니다.

0 추천

안녕하세요! 개발 시작한 지 꽤 되었는데 아직도 모르는 게 많아 이것저것 찾아보며 개발하는데,

도저히 진행이 안되어 질문 드립니다 .ㅠ

 

현재 메인페이지에서 여러 정보들을 리스트 형식으로 보여주고 있는데,

startActivityForResult 로 신규 intent를 만들어 검색조건을 설정한 후 조건에 맞는 값만 메인페이지에서 다시 보여주려고 하고 있습니다.

 

모든 게 정상적으로 되는데 onActivityResult로 값을 받아올 때 onCreate 안쪽에 작성하지 못하고

하단에 onActivityResult를 작성하여 값을 불러올 수는 있으나 불러온 값을 대입하여 리스트를 보여주지는 못하고 있습니다.

onActivityResult를 진행하기 전에 이미 리스트를 보여주는 코드이기 때문입니다.

 

이를 해결하기 위해서 onActivityResult를 진행한 후

	Intent refresh = new Intent(this, MainActivity.class);
        startActivity(refresh);		        
        this.finish();

로 intent를 재호출하는 것도 시도해보았는데,

이럴 경우 검색 조건이 초기에 변수설정한 값으로 돌아가 검색이 반영되지 않습니다.

 

될 것 같은 코딩은

1. onActivityResult 를 onCreate 내부의 리스트를 뿌려주기 전에 코딩을 하는 방법과

(onActivityResult 를 onCreate 내부에 작성할 수 있는지 여부와 작성할 수 있으면 어떻게 하는지는 모르는 상태입니다)

2. 단순하게 onActivityResult 가 아닌 Intent intent = getIntent();를 onCreate 내부의 리스트를 뿌려주기 전

불러오는 방법입니다.

(그러나 이 방법은 intent가 검색 결과를 불러올 때마다 생성되어 층층이 쌓이게 됩니다. 이를 해결하는 방법은

모르는 상태입니다)

 

이럴 경우 어떻게 해결해야 하나요... 고수님들 답변 부탁드립니다. ㅠ

뿌요뿌요 (1,350 포인트) 님이 2015년 7월 7일 질문
뿌요뿌요님이 2015년 7월 7일 수정

1개의 답변

0 추천
 
채택된 답변
만약 검색결과로 받아오는 값이 List 라면

받아오는 액티비티에서 list를 수정하고

수정한 list로 어댑터를 재생성해주신 다음에

listview에 새로 어댑터를 생성하시면 될 것 같습니다.

 

혹은 받아와서 어댑터를 notifyDataSetChanged() 메소드를 이용하여 리프레시 하시면 될 것 같습니다.
taejun (7,240 포인트) 님이 2015년 7월 7일 답변
뿌요뿌요님이 2015년 12월 9일 채택됨
...