【问题标题】:Android home activity to different series of activities and then back to home activity?Android home activity 到不同系列的activity,然后回到home activity?
【发布时间】:2014-10-31 07:27:56
【问题描述】:

我的应用程序中有不同的活动,包括活动 1(家庭)、活动 2、活动 3 等等,他们将 Jason 解析数据从一个活动转移到另一个活动。当我从活动 1(主页)--> 活动 2--> 活动 3--> 并希望在单击主页按钮后返回主页活动时,它会将我带到上一个活动(活动 2)。

这是我的代码:

  homeButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            finish();
            Intent home = new Intent(getApplicationContext(),
                    DashboardActivity.class);
            home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(home);
        }
    });

    logout.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            AlertDialogLogout();

        }
    });

    helpbutton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent helpActivity = new Intent(getApplicationContext(),
                    HelpActivity.class);
            startActivity(helpActivity);
        }
    });
    profilebutton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent viewProfile = new Intent(getApplicationContext(),
                    ViewProfileScreenAct.class);
            startActivity(viewProfile);
        }
    });

    socialbuttonIV.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            shareIt();
        }
    });
}

【问题讨论】:

  • 告诉我你如何从活动 1 调用活动 2,然后从活动 2 调用活动 3。谢谢

标签: android


【解决方案1】:

在你的主页按钮点击监听器上使用它

 homeButton.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        finish();
        Intent home = new Intent(youractivityname.this,
                yourhome_activityname.class);
        home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(home);
    }
});

【讨论】:

  • 它不工作,仍然需要以前的活动
  • 清理并重建您的项目
【解决方案2】:

你为什么不使用简单的意图回到第一个活动

  homeButton.setOnClickListener(new OnClickListener() { 

        @Override 
        public void onClick(View v) {
            Intent home = new Intent(getApplicationContext(),DashboardActivity.class); 
            startActivity(home);
        } 
    }); 

【讨论】:

  • 使用简单的意图将错误的 Jason 数据发送到家庭活动,而家庭活动将相同的错误数据发送到另一个活动
  • @Zohaib .... 您可以设置标志来设置逻辑,以便在控制来自第三个活动时专门采取行动
  • @ Devrath... 我使用了像这样的标志 home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);但它没有用。你能推荐点别的吗
  • @Zohaib ......我不是指意图标志......第一个活动中的简单布尔标志......在该活动开始时对特定逻辑采取行动从上次活动开始,并在另一种情况下采取不同的行动
【解决方案3】:

也许不是在一个圆圈中从一个活动跳到另一个活动,而是更好(也更容易)拥有一个活动,并通过使用 ViewPager、ViewFlipper 和/或 Fragments 以编程方式更改向用户显示的布局(取决于关于功能)?这样,您不必更改活动、记住它们的顺序(因为您看到活动更难)、将数据从一个发送到另一个。所有数据都将存储在一个地方,您只需更改/更新界面。顺便说一句,如果用户想要对输入的数据进行更改,他可以返回并更新它。

【讨论】:

    猜你喜欢
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多