如何从第二个屏幕返回到第一个屏幕

时间:2012-02-24 11:16:10

标签: android android-activity

我可能有一个简单的问题,如何切换布局,但它对我来说有点复杂。我有一个主要的课程,onCreatesetContentView(R.layout.main);),而不是我打电话给另一个有命令的课:

setContentView(secondClass);

在这篇文章中,我使用Canvas绘制,这项工作很好,我也创建了按钮,可以在第一个“类”(R.layout.main)中返回,但我不知道该怎么做。

现在我的程序是基本的图形淋浴。在第一堂课你输入你的功能,他们在第二课时画它。但是如何回到头等舱来输入另一个功能。每个安卓手机都有这个“后退”按钮或箭头,让我退出程序而不是插入部分。

在secondClass中,我无法创建onCreate方法,但我也尝试了以下内容并且它们没有工作:

Intent abc = new Intent("bla.bla.bla.FIRSTCLASS");

startActivity(abc);

Intent abc = new Intent(SecondClass.this,FirstClass.class);

startActivity(greNaPrvoOkno);

我知道我的英语不好。希望你明白。

谢谢。

5 个答案:

答案 0 :(得分:3)

如果您想使用自定义视图(据我所知,您正在扩展View类),您可以通过以下方式执行此操作;

考虑您正在显示Main活动中的第二个类;

setContentView(new SecondClass(getApplicationContext(), MainActivity.this));

而你第二课就是这个(假设);

// I am using onClickListener to go back to main view. You do whatever you like.
public class SecondClass extends View implements OnClickListener {

    // This is needed to switch back to the parent activity
    private Activity mParentActivity = null;

    public SecondClass(Context context, Activity parentActivity) {
        super(context);

        mParentActivity = parentActivity;   
        setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // Set the Main view back here.
        mParentActivity.setContentView(R.layout.main);
    }

}

免责声明:此代码会执行您要求的操作,但可能会导致其他问题。

根据@Mudassir的建议,您应该为两个屏幕使用两种不同的活动。它将为您提供更好的控制,您的代码将易于理解和维护。

答案 1 :(得分:1)

在按钮的Onclick事件中,您必须编写finish();那就是..

答案 2 :(得分:0)

您应该为第二个类创建另一个活动,但不要只将主活动设置为新视图setContentView(secondClass)。

为了便于修改,您可以尝试首先将视图设置回setContentView(R.layout.main)。

当您将其设置回来时,仍然需要在其上配置小部件(例如TextView)。


您不必再次使用startActivity返回。

当您想要完成当前活动并返回时,只需在第二个活动中调用finish():

e.g。用户在第二个活动中按后退按钮

mButtonBack.setOnClickListener(new Button.OnClickListener() 
{       
   public void onClick(View v) 
   {                            
      finish();
   }
}

答案 3 :(得分:0)

你的两个课程都是活动吗?如果是这样,那么在您的第二个活动中,您只需致电finish(),您的活动就会关闭,再次显示您的第一个活动。

答案 4 :(得分:0)

当我在我的Android应用程序中使用多个意图时,我通过以下方式创建了一个新活动:

Intent abc = new Intent(this, SecondClass.class);
startActivity(abc);

当你在第二节课中按下按钮时,我会在课堂上调用finish();,或者像这样创建一个新意图:

Intent abc = new Intent(this, FirstClass.class);
startActivity(abc);

但是,这种方法的缺点是,如果用户想要使用后退按钮,他们可能需要滚动浏览多层活动。