2013-08-06 1 views
0

그래서 목록보기를 보유하고 목록에 대한 모든 데이터를 보유하는지도가있는 주요 활동이 있습니다. 항목을 클릭하면 세부 정보 표시로 이동합니다. 뒤로 버튼을 눌러 세부 작업의 주 활동으로 돌아갈 때 중단 점을 설정하면 맵 키는 그대로 유지되지만 오브젝트의 모든 문자열은 ""이고 int는 -1입니다. 내 주요 활동은 다음과 같습니다.반환시 누락 된 활동

public class MainActivity extends Activity { 
    private Map<String, Stunt> stunts = new LinkedHashMap<String, Stunt>(); 
    private StuntsDao stuntsDao; 
    private ListAdapter listAdapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     stuntsDao = new StuntsDao(getApplicationContext());  

     stunts = stuntsDao.getAllStunts(); 

     listAdapter = new ListAdapter(this, R.layout.list_layout, new ArrayList<Stunt>(stunts.values())); 
     ListView listView = (ListView)findViewById(R.id.listView); 

     listView.setAdapter(listAdapter); 
     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
       String stuntName = (String)((ViewHolder)view.getTag()).stuntName.getText(); 
       Intent myIntent = new Intent(getApplicationContext(), StuntDetails.class); 
       getStuntDetailsIfNeeded(stuntName); 
       Stunt stunt = stunts.get(stuntName); 
       myIntent.putExtra("STUNT", stunt); 
       startActivity(myIntent); 
      } 
     }); 
    } 
... 

} 

왜 내지도의 개체는 기본적으로 비어 있습니까?

+0

다시 클릭하면 onCreate()가 호출되지 않습니다. – VM4

+0

그럼 내가 생각하기에 내가 onSaveInstanceState와 onRestoreInstanceState 메소드를 구현했는데 도움이되지 않았다. 하지만 예, onRestoreInstanceSave 및 onCreate 메서드는 반환 할 때 호출되지 않습니다. –

+0

이러한 방법은 방향이 바뀌는 경우를위한 것입니다. – VM4

답변

1

클릭 할 때 onCreate()가 호출되지 않습니다. onStart 또는 onResume에서 데이터를 다시 초기화해야합니다. 참조 : http://developer.android.com/training/basics/activity-lifecycle/starting.html

+0

내지도를 저장할 방법이 없으므로 데이터베이스에서 다시 가져와야하지 않습니까? –

+0

그럼 방법이 있습니다. 여기를 참조하십시오 : http://developer.android.com/guide/topics/data/data-storage.html하지만 SQLite 아마 가장 좋은 방법이라고 생각합니다. – VM4

+0

테스트 용도로 데이터를 저장하기 위해 자신의 Application 클래스를 확장 할 수는 있지만 코드 냄새가 난다. 앱의 메모리가 부족할 수있다. 아마 좋은 DB를 구현하는 것이 당신이 원하는 것일 것입니다. – VM4

관련 문제