0

标题几乎解释了我的整个问题。我有一个简单的新闻应用程序 - 上下滚动查看文章标题,然后单击一个转到 ArticleActvity(即阅读文章)。

当用户向左或向右滑动时,它会加载下一篇或上一篇文章。但是 - 我的代码显然只是在另一个之上加载了一个新的文章活动,因为我的后退按钮在多次单击时会关闭文章活动,然后关闭另一个,然后关闭另一个......等等,直到你最终返回文章列表。

作为一个 Android 菜鸟,这是我的代码 1) 检测水平滑动,以及 2) 使用新文章重新加载(尝试)相同的活动。

版本:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15"/>

我在 ArticleActivty.java 中的代码:

SimpleOnGestureListener simpleOnGestureListener = new SimpleOnGestureListener()
{

     @Override
     public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
     {
         if(distanceX < -60)
         {
             //still need to hide article and show rotator graphic
             Intent myIntent = new Intent(getBaseContext(), ArticleActivity.class);
             myIntent.putExtra("id", String.valueOf(articlesDataSource.getNextOrPrevArticleId(article.id, true)));
             overridePendingTransition(0, 0);
             myIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);

             finish();

             overridePendingTransition(0, 0);
             startActivity(myIntent);
         }
         else if(distanceX > 60)
         {
             //still need to hide article and show rotator graphic
             Intent myIntent = new Intent(getBaseContext(), ArticleActivity.class);
             myIntent.putExtra("id", String.valueOf(articlesDataSource.getNextOrPrevArticleId(article.id, false)));
             overridePendingTransition(0, 0);
             myIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);

             finish();

             overridePendingTransition(0, 0);
             startActivity(myIntent);
         }
         return super.onScroll(e1, e2, distanceX, distanceY);
     }
4

1 回答 1

1

添加android:launchMode="singleInstance"

ArticleActivity's清单文件的标签中

于 2012-11-30T15:53:00.330 回答