2014-07-20 4 views
1

취미 프로젝트에 대한 안드로이드 프로그래밍에 대해 자세히 배우고 있습니다. 그래서 나는 최근에 간단한 문제에 부딪 쳤지만 해결책을 찾지 못했습니다.다른 활동에서 ListAdapter 업데이트

내 프로젝트 지금이 활동 [MainActivity], [CommentActivity]을 위해. MainActivity에서

, 나는 데이터베이스의 모든 컨텐츠를 취득하고리스트 뷰에 표시됩니다 listadapter (cusAdapter) 있습니다. 모든 것이 잘 작동합니다. 게시 ID를 기반으로 특정 게시물의 모든 댓글과 총 댓글을 가져옵니다. 동일한 MainActivity에서 나는 코멘트 버튼과 onclick 리스너를 가지고 있는데,이 버튼을 클릭하면 다음 Activity [CommentActivity]로 이동하고 다른 사용자 정의 어댑터를 사용하여 필요한 모든 주석과 데이터를로드합니다. 또한 총 주석을 TextView에 표시하여 json에 의해 반입 된 전체 주석을 표시하고 내 listview에 표시합니다. 사용자가 CommentActivity에 댓글을 게시하는 경우

, 그것은 AsyncTask를 통해 데이터베이스에 저장됩니다.

이제 문제는 다시 버튼을 누르고 CommentActivity에서 MainActivity로 돌아갈 때 intent.flag_activity_reorder_to_front 플래그를 사용한다는 것입니다. 다시 버튼을 누르면 MainActivity를 다시로드하지 않습니다. 또한 MainActivity에서 전체 주석을 업데이트하지 않습니다. 내가하고 싶은 일은 CommentActivity에서 뒤로 버튼을 눌렀을 때, 데이터베이스에서 최신 데이터를 가져 오기 위해 MainActivity의 ListAdapter를 새로 고침/다시로드하기를 원할 때입니다.

또한 내가 난 그냥 싶어 모든 활동을 다시로드하지 않고보기를 업데이트, 전체 MainActivity를 다시하고 싶지 않아요.

나는이 작업을 수행하는 몇 가지 쉬운 방법이 있어야한다 생각합니다. 나에게 도움이 필요하면 코드를 게시 할 수 있습니다.

감사합니다. 당신의 MainActivity이가 당신이 CommentActivity에서 다시 갈 때 호출되는 바와 같이 데이터가 변경되었는지 onResume에서 확인할 수 있습니다에서

답변

1

예, 쉬운 방법이 함께보기를 다시로드 할 어댑터 notifyDataSetChanged()를 호출. 사용하여 sencond 활동을 시작 :

  • 에 startActivityForResult (의도, RESULT_CODE) (가)의 데이터베이스
  • 오버라이드하여 onActivityResult()로 변경 커밋하고 이후 두 번째 활동
  • 사용 setResult (RESULT_OK) 귀하 두 번째 작업이 올바르게 반환 될 때 확인하는 첫 번째 작업
  • 필요에 따라 첫 번째 어댑터를 업데이트합니다.

희망이 있습니다.

+0

안녕하세요, 귀하의 의견에 감사드립니다. 나는 이미'startActivity (intentThis, bndlanimation); '를 사용했다. 그것에 RESULT_CODE를 추가하는 방법은 무엇입니까? 죄송합니다, 나는 안드로이드 프로그래밍 초급입니다. – Chivaa

+0

startActivityForResult()를 사용해야합니다. 개발자 문서 http://developer.android.com/reference/android/app/Activity.html#StartingActivities에서 의미를 확인하십시오. http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int) –

+0

Oppsss, 죄송합니다. 나는 그것을 깨닫지 못했다. 내가 다시 시도하고 다시 업데이 트됩니다. 고맙습니다.:) – Chivaa

1

. 데이터가 변경된 경우

, 새로운 데이터