タイトルは、私の問題全体をほぼ説明しています。私は単純なニュース アプリを持っています。上下にスクロールして記事の見出しを見てから、いずれかをクリックして ArticleActivity に移動します (つまり、記事を読みます)。
ユーザーが左右にスワイプすると、次または前の記事が読み込まれます。しかし、私のコードは明らかに新しい記事アクティビティを他のものの上にロードするだけです。なぜなら、戻るボタンを複数回クリックすると、記事アクティビティが閉じられ、次に別のアクティビティが閉じられ、次に別のアクティビティが閉じられるためです....など.記事一覧に戻ります。
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);
}