2011-09-23 6 views
1

나는 여러 언어로 된 기사 리더 & 관리자 및 기사의 일종 인 앱을 디자인하고 있습니다.기존 활동을 어떻게 전환합니까?

그래서 사용자가 러시아어로 특정 기사를 읽으면 동일한 기사를 영어로 표시하거나 그 반대로 표시하는 버튼이 있습니다.

이렇게하려면 새로운 활동을 시작하십시오. 지금 내가 가진 것은 사용자가 동일한 기사의 "번역"버튼을 여러 번 누르면 중복 된 활동의 힙이 있다는 것입니다.

내가 달성해야하는 것은 사용자가 러시아 기사를 영어로 처음 번역 한 다음 영어 기사에서 '번역'버튼을 누르면 러시아 기사를 표시하는 기존 활동으로 복귀시키고 새로운 활동을 시작하지 않는다는 것입니다. . 여기에 내 시도를 설명 할 필요가없는 코드가 있습니다.

intent.putExtra("BookID", strBookID); 
     intent.putExtra("ChapterNum", mCurrChapterNum); 
     intent.putExtra("TextNum", mCurrTextNum); 

     try{       
      if (Central.LastBookID.equals("")) 
      { //remember current article id 
       Central.LastBookID=strBookID; 
       Central.LastChapter=mCurrChapterNum; 
       Central.LastText=mCurrTextNum; 
      } 
      else 
      { 
       if (Central.LastChapter.equals(mCurrChapterNum) && 
         Central.LastText.equals(mCurrTextNum)) 
        intent.addFlags(Intent. FLAG_ACTIVITY_REORDER_TO_FRONT); 
      } 
      startActivity(intent); 

제게 조언을 해주세요. 다르게 적용하는 것이 더 좋을까요? 내가 읽었을 때부터 안드로이드에는 "Activity ID"가 없으므로 동일한 클래스 "A"의 액티비티가 있지만 (A1 A2)와 같은 다른 매개 변수가있는 경우 시스템에 알릴 수 있습니다. 프론트 액티비티 A1으로 가져와 (A2 A1)

답변

3
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

위의 플래그를 대신 사용하여 프리 보이스 1을 완료하고 새 플래그를 시작합니다. 활동의 힙이없고 여분의 논리가 없습니다.

+0

이 방법이 효과적이지만 기사의 스크롤 위치가 손실되는 유일한 문제는 처음으로 재설정됩니다. 어쨌든, 답장을 보내 주셔서 감사합니다! – Ivan

관련 문제