0

タイトルは、私の問題全体をほぼ説明しています。私は単純なニュース アプリを持っています。上下にスクロールして記事の見出しを見てから、いずれかをクリックして 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);
     }
4

1 に答える 1

1

追加android:launchMode="singleInstance"

ArticleActivity'sマニフェスト ファイルのタグに

于 2012-11-30T15:53:00.330 に答える