2011-09-23 52 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