0

我正在使用登录、注册和用户详细信息创建小型应用程序。登录后,我会将登录凭据存储到共享首选项并导航到仪表板活动。第二次直接导航到仪表板活动。此级别的代码运行良好。

请考虑我有三个活动MainActivity、LoginActivity、RegisterActivity、DashboardActivity 和 ProfileActivity。

在我的MainActivity如果用户值是 sharedPreference 直接移动到DashboardActivity

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if(new SessionManager(getApplicationContext()).isLoggedIn()){               
            startActivity(new Intent(getApplicationContext(), DashboardActivity.class));
        }
    }

在我的仪表板活动中

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ImageButton imgBtn = (ImageButton) findViewById(R.id.imageButton1);
        imgBtn.setOnClickListener(new OnClickListener() {           
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
            }
        });
    }

现在只需按下设备中的后退按钮即可转到MainActivity而不是DashboardActivity。我只想将活动移动到DashboardActivity,而不是MainActivity。请指导我如何做到这一点。以及如何在 Android 中处理会话。

此外,我在使用哪些标志和在哪里使用方面有些困惑。我在DashboardActivity中尝试过,但没有工作。

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ImageButton imgBtn = (ImageButton) findViewById(R.id.imageButton1);
        imgBtn.setOnClickListener(new OnClickListener() {           
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent newIntent = new Intent(getApplicationContext(), ProfileActivity.class);
                newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            newIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
            newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(newIntent);
            }
        });
    }

现在我尝试了各种可能的方法,但没有得到解决方案。

将DashboardActivity导航到任何 Activity 不会返回DashbarodActivity而不是转到MainActivity后,就会出现主要问题。我不知道为什么会这样。MainActivity导航中的任何问题

4

4 回答 4

0

只需简单地覆盖 ProfileActivity 中的 onBackPressed 方法并调用完成方法即可。

@Override
public void onBackPressed() {
   finish();
}
于 2013-11-08T12:54:13.173 回答
0

编辑答案:

在您的ProfileActivity上,尝试覆盖 onBackPressed 方法,然后再次启动 DashboardActivity 并且不要忘记完成当前活动。

@Override
public void onBackPressed(){
    startActivity( new Intent(this, DashboardActivity.class) );
    finish();
}
于 2013-11-08T12:39:17.957 回答
0

只需在通过 Intent 启动新活动后完成当前活动,您就应该实现所需的功能,这样您就不需要任何标志。当然 MainActivity 除外。

于 2013-11-08T12:40:42.603 回答
0

我不确定,但是DashboardActivity尝试像这样开始您的活动:startActivity(new Intent(DashboardActivity.this, ProfileActivity.class));

于 2013-11-08T12:36:29.143 回答