먼저 연산만하는 액티비티가 아닌 클래스가 있습니다. 이 클래스의 함수는 웹페이지를 파싱해서
사용자클래스에 객체로 차곡차곡 넣고 그 다음, 해쉬테이블에 put해서 해쉬테이블로 리턴합니다.
그래서 받은 해쉬테이블로 intent에 putExtra로 넘겨줍니다. 그리고 이것을 다시 다른 액티비티로
Intent i = getIntent();
intent.putExtra( "outbus", i.getSerializableExtra("inCity") );
intent.putExtras( b );
이런식으로 넘겨줍니다.
정리하면 처음에 Hashtable h = 연산클래스.함수(); 이렇게 해서 h에 넣고
h를 intent.putExtra( "outbus", h ); startActivity( intent ); 이렇게 해서 다른 액티비티로 옮겨주고
그 액티비티에서 다시 I
ntent i = getIntent();
intent.putExtra( "inCity", i.getSerializableExtra("inCity") );
intent.putExtras( b );
이렇게 합니다.
그리고 마지막 액티비티에서
Serializable s2 = getIntent().getSerializableExtra( "inCity" );
Hashtable resultHash = null;
if( s2 != null ) {
resultHash = new Hashtable( (HashMap) s2 );
}
else {
System.out.println( "null" );
}
resultHash라는 해쉬테이블로 캐스트합니다.
그리고 이 해쉬테이블 안에들어있는 사용자클래스 객체를 불러오기 위해서
TransportationData[] tmp = (TransportationData[] ) resultHash.get( "0" );
이렇게하면 캐스트에러가납니다.
그래서 resultHash를 로그를 찍어보면 Object라고 나옵니다. 원래라면
TrnasrationData 이렇게 찍혀야 정상인데 객체가 이상합니다..
Object에 ( Object ) 로 캐스트하면 캐스트는 되는데 문제는 저걸 다시 원래에 TrnasrationData 이걸로 바꾸지 않으면
그 안에 함수를 사용하지 못해서 데이터를 못 끄집어내느데요..
왜 Object로 바꼈을까요? 주소도 다르더군요.. 답변 좀 주세요..너무 복잡하게 주저리주저리했나모르겠네요..ㅜㅜ