0

私のアプリには、メニューから選択して別のビューに移動できる通常のメニューがあります。単純...

private void gotoSettings() 
{
    Intent settingsIntent = new Intent(this, SettingsActivity.class);
    startActivity(settingsIntent);
}

これで、メイン ビューにフリング (ビュー間のスワイプ) を処理するメソッドも追加されました。

Intent intent = new Intent(MainActivity.this.getBaseContext(), CommandActivity.class);

            if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) 
                return false;

            // left to right swipe
            if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) 
            {
                startActivity(intent);
                MainActivity.this.overridePendingTransition(R.anim.slideinleft, R.anim.slideoutright);
            }

これが問題です。アプリの起動時に、メイン アクティビティで設定を選択すると、正常に動作し、設定アクティビティに移動します。しかし、Command アクティビティに移動してメイン アクティビティに戻り、[設定] をもう一度選択すると、同じメソッドが呼び出され、これが再び実行されます。

private void gotoSettings() 
{
    Intent settingsIntent = new Intent(this, SettingsActivity.class);
    startActivity(settingsIntent);
}

ただし、設定アクティビティではなく、コマンド アクティビティが自動的に表示されるようになりました。私はデバッグして、上記のコードと startActivity(settingsIntent); の直後を通過するのを目撃しました。設定アクティビティには移動せず、コマンド アクティビティに移動します。

設定に行くように言っているので、これは非常に奇妙ですが、そうではありません。フリングと何か関係があるに違いないのですが、わかりません....?

4

1 に答える 1

1

おそらく、あなたはこのように書く必要があります

Intent intent = new Intent(MainActivity.this, CommandActivity.class);

それ以外の

Intent intent = new Intent(MainActivity.this.getBaseContext(), CommandActivity.class);
于 2011-04-09T18:29:47.423 に答える