2012-12-12 5 views
0

일반적인 시나리오가 있지만이를 처리하는 방법을 찾을 수 없습니다.이전 활동의 데이터를 변경하는 방법

각 항목마다 클릭 가능한보기가 다른 ListView가 있습니다. 그중 1은 친구로 추가하십시오. 항목의 사용자 이름 옆에있는 버튼.

그래서 ListViewAdapter의 getView()에서는이 방법으로이 버튼에 대해 onClick을 구현했습니다.

onClick(){ 

//make the button invisible, for UX 
//change the value of is_friend = 1, in the Adapter ArrayList, which will be helpful when listView is scrolled and getView is called again, to make it visible or invisible. 
//Send the info to the server as an AsyncTask 
} 

이 작동합니다.

문제 :

대신 친구 단추로 추가 클릭, 나는 자신의 프로필로 이동 사용자 이름을 클릭하고 그 활동에 친구로 추가 버튼을 클릭 할 수 있습니다.

이제 ArrayView 어댑터가 서버에서 가져온 이전 데이터를 가지고 있기 때문에 ListView로 컴백하면 친구로 추가 버튼이 계속 표시됩니다. 사용자 이름을 클릭하면

나는에 startActivityForResult 생각했다. 하지만 난 ListView로 컴백하지 않을 수도 있습니다. 친구로 추가, 사용자 프로필에 다른 많은 작업이 있습니다.

친숙한 사례가 여러 앱에서 쉽게 처리됩니다. 이것이 어떻게 이루어 졌는지에 대한 아이디어가 있습니까?

작업 아래의 답변 비록 :

당신은

EDIT 감사드립니다. 그들은 최선의 방법이 아닙니다.

그래서 더 나은 방법은 listViewAdapter의 정적 메서드를 호출하여 해당 값을 해당 ArrayList에서만 업데이트하는 것일 수 있습니다. ??

+0

해결책은 (추가 친구에 TRUE로 전환) 정적 부울을 가질 수 있고 이전 활동의 onResume()에서 당신은 왜 당신은 그냥 다시 채 웁니다하지 않습니다이 부울을 확인하고 목록 – Faizan

+0

를 업데이트 할 수 있습니다 onResume의 ArrayList? – gsingh2011

+0

1 개의 작은 변경에 대해 100 개 이상의 항목 전체를 다시 채울 수 없습니다. ( –

답변

0

gsingh2011의 의견이 유효합니다. 그러나, 나는 당신의 발언이 "나는 서버를 질의하여 ArrayList를 채 웁니다. 그리고 자주하지 않을 것입니다"라고 생각합니다.

더 일반적으로 gsingh의 의견은 다음과 같이 번역 할 수 있습니다. 어댑터와 'ViewProfileActivity'를 동일한 데이터에 기반해야합니다. ArrayList를 정적 멤버 또는 public 멤버 또는 원하는대로 둘 사이에서 공유하여이 작업을 수행 할 수 있습니다. 'ViewProfileActivity'에서 무언가를 변경하면 ListView가 다시 전환되면 ListView가 자동으로 업데이트됩니다 (getView()가 어댑터에서 다시 호출되어 새 데이터를 기반으로보기를 생성하기 때문에).

위의 텍스트는 질문에 대한 답변이지만, 나 그냥 다른 발언을 추가 할 수 있습니다 :

  • 당신은 AsyncTask를의 서버에 정보를 보내는 말한다. 이를 위해 (의도) 서비스를 사용하도록 이것을 변경해야합니다. 활동이 백그라운드에서 수행 될 때 데이터가 완전히 전송된다는 보장이 없습니다.이 서버 동기화를 서비스에 위임 할 경우, 프로세스가 완료 될 때까지 기다려야합니다.
  • 일단 서비스를 받으면 위에서 언급 한 "공유 된 데이터"를 넣을 수 있습니다. 또한 작은 데이터베이스를 사용하여 로컬 데이터베이스와 원격 서버 간의 동기화 만 처리 할 수 ​​있습니다. 그런 다음 기기가 원격 데이터를 로컬에 캐싱하는 REST 구현과 같이 보이기 시작한 것이지만 결국에는 원격 서버의 상태 만 시각화합니다. 당신은 REST 서버를 다루는 훌륭한 Google I/O 프레젠테이션을 찾을 수 있습니다. 이 프리젠 테이션은 REST 파트에 관심이 없다면 멋지다. 왜냐하면 (아마도 더 중요한 것은) 성공적인 데이터 지속성을 보장하고자 할 때 고려해야 할 사항을 보여주기 때문이다.
관련 문제