2014-07-20 2 views
0

데이터베이스에 연결하고 JSONArray를 반환하는 AsyncTask가 있습니다. 데이터가 ListView에 표시됩니다. 나는을 ListItem을 클릭하면 지금이 된 JSONObjectAndroid 새로운 의도없이 새로운 클래스 표시

Intent it = new Intent(DisplaySearchResults.this, Display.class); 
try 
{ 
    it.putExtra("ID", jArray.getJSONObject(position).getString("ID").toString()); 
    it.putExtra("TITLE", jArray.getJSONObject(position).getString("TITLE").toString()); 
    it.putExtra("STRING", jArray.getJSONObject(position).getDouble("STRING")); 
    it.putExtra("SOME TEXT", jArray.getJSONObject(position).getString("SOME TEXT").toString()) 
} catch (JSONException e) 
{ 
    e.printStackTrace(); 
} 
startActivity(it); 

의 데이터와 새로운 의도를 시작하는 것은 이제 더는 그렇게 할 수 없다 가능

Display d = new Display(jsonArray); 
+0

JSONArray는 기본적으로 String이므로 전체 JSON Object를 추가 할 수 있습니다. – vandus

+0

고마워요 - 적어도 훨씬 더 편합니다 :) – user0815

답변

0

처럼 뭔가 디스플레이 클래스를 시작하는 것입니다.

왜?

DisplayActivity이고 Android에서는 활동주기가 Android 프레임 워크에서 관리됩니다. 그것은 안드로이드 프레임 워크가 어떤 Activity의 새로운 인스턴스를 생성 할 때를 결정한다는 것을 의미합니다.

계약은 다음과 같습니다

  • 액티비티의 새로운 인스턴스가 생성 될 때 : 안드로이드 프레임 워크는 당신에게 새로운 활동을 초기화 할 수있는 기회를 제공하기 위해 onCreate 메소드를 호출합니다.
  • 당신은 (new를 호출하여 즉) 새로운 활동 자신
  • 당신이 인 텐트를 사용하여 모든 활동의 새 인스턴스를 만들려면 안드로이드 프레임 워크를 요청할 수 있으며, 안드로이드 프레임 워크는 비동기 적으로 당신을 위해 그것을 할 것을 인스턴스화 할 수 없습니다 .

완성도를 들어, 내가 다음을 추가 할 수 있습니다 : 어떤 상황에서

  • , 예를 들어 "화면 회전", 안드로이드 프레임 워크를 파괴하고 활동을 다시 결정할 수 있습니다. 그렇게하기 위해서 : 프레임 워크는 초기에 Activity를 생성하기 위해 사용 된 Intent를 재사용 할 것입니다.

  • 인 텐트 플래그, 활동 시작 모드 및 대상 활동의 인스턴스가 이미있는 경우 : 프레임 워크는 대상 활동의 새 인스턴스를 만들지 않기로 결정할 수 있습니다. 이미 대상 활동의 기존 인스턴스입니다.

관련 문제