标题几乎解释了我的整个问题。我有一个简单的新闻应用程序 - 上下滚动查看文章标题,然后单击一个转到 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);
}