2014-02-13 2 views
0

다른 활동에 응답 개체 (soapobject)를 보내려고합니다.활동간에 개체 인스턴스를 전달하는 방법

참고 : 개체를 만들지 않고 웹 서비스의 응답으로 수신합니다.

제 활성 내 로직은 응답이 하나 개 이상의 결과를 포함하는 경우, 다음

MY 문제 (그렇지 않으면 "no results"메시지를 표시) 추가 처리를 위해 다음 활동에 보내이다putExtranon serilaized 또는 non parcelable object을 전송할 수 없습니다.

오류 메시지 : 여기 The method putExtra(String, boolean) in the type Intent is not applicable for the arguments (String, SoapObject)

내 코드가 어떤 제안입니까?

SoapObject soapResponse = soaphttp.fetchNextCatalogueRange(0, numberOfItems); 
Intent ResultsActivityIntent = new Intent(MainActivity.this,SearchResultsActivity.class); 
// Send data object with the Intent 
ResultsActivityIntent.putExtra("ResultObj", soapResponse); 
startActivity(ResultsActivityIntent); 
+0

http://stackoverflow.com/questions/2736389/how-to-pass-object-from-one-activity-to-another-in-android – user2450263

+1

'Parcelable'을 구현해야합니다. 이 답변을 확인하십시오 [어떻게 활동간에 개체를 전달할] (http://stackoverflow.com/questions/2736389/how-to-pass-object-from-one-activity-to-another-in-android) – Apoorv

+0

캔트 사용 나는 객체를 생성하지 않기 때문에 필자는 그것을 캐스팅 할 수없는 검색 결과로 받는다. – user1882582

답변

1

상수 클래스 만들기

같은 클래스에 SoapObject를 만듭니다. 여기에

Class Constant 
{ 
    public static SoapObject sopObj=null; 
} 

,

SoapObject soapResponse = soaphttp.fetchNextCatalogueRange(0, numberOfItems); 
    Intent ResultsActivityIntent = new Intent(MainActivity.this,SearchResultsActivity.class); 

//

get that soapObject value like this, 

    SoapObject sopObject=Constant.sopObj; 

김 간단한 다음 클래스에서 텐트

Constant.sopObj=soapResponse; 

     startActivity(ResultsActivityIntent); 

와 데이터 객체를 보내기 ...

,
+0

감사합니다. 이것은 모든 활동이 볼 수있는 상수를 사용하는 좋은 대안 솔루션입니다 ....그러나 나는 여전히 그 의도를 적절히 사용하는 방법을 알고 싶다. 왜냐하면 나는 그것의 더 나은 실천을 생각하기 때문이다. – user1882582

0

다른 옵션도 있습니다 ... GSON을 사용하고 JSON 문자열로 개체를 변환, 사용자의 작업에 번들 문자열을을 통해 통과에 JSON 문자열에서 다시 되돌리려면 다시 GSON를 사용하여 목적.

+0

감사합니다. 나는 이것을하는 방법에 익숙하지 않다, 어떤 포인터가 있니? – user1882582

+0

이 문서를 확인해보세요. 정말 잘 문서화되어 있습니다 ... https://sites.google.com/site/gson/gson-user-guide –

+0

아직 성공하지 못했습니다 ... gson.toJson (soapResponse)을 시도하고 오류가 발생했습니다. -> java.lang.UnsupportedOperationException : java.lang.Class : org.ksoap2.serialization.SoapPrimitive를 직렬화하려고 시도했습니다. 형식 어댑터를 등록하는 것을 잊었습니까? – user1882582

관련 문제