2011-09-23 44 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); 

請給我一些建議,也許它會更好地實施它不同? 從我設法閱讀的內容來看,Android沒有任何「Activity ID」,所以如果我有兩個堆棧中的同一個類「A」的活動,但具有不同的參數(如A1 A2),我可以告訴系統(A2 A1)

回答

3
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

使用上面的標誌,而不是完成prevoius一個,並開始新的一個。所以沒有一堆活動,沒有額外的邏輯。

+0

這可行,但唯一的問題是文章中的滾動位置會丟失 - 它會重置爲開始。無論如何,感謝您的回覆! – Ivan

相關問題