Android问题切换活动

时间:2011-04-09 14:15:33

标签: android android-activity android-intent swipe

在我的应用程序中,我有一个普通的菜单,我可以从菜单中选择并转到不同的视图。简单...

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

现在我在主视图中也有一个处理flings的方法(在视图之间滑动):

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活动,然后返回主活动,然后再次选择Settings,它将调用相同的方法再次执行此操作:

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

但现在它会自动显示Command活动而不是Settings活动。我甚至已经调试并亲眼目睹了它在startActivity(settingsIntent)之后通过上面的代码;它不会转到“设置”活动,而是转到命令活动。

这是非常奇怪的,因为我告诉它去设置,但事实并非如此。它必须与投掷有关,但我没有看到它......?

1 个答案:

答案 0 :(得分:1)

可能你需要这样写

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

而不是

Intent intent = new Intent(MainActivity.this.getBaseContext(), CommandActivity.class);
相关问题