繁体   English   中英

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

[英]How to go back from second screen to first screen

如何切换布局? 首先,我有一个 Main 类,其中onCreatesetContentView(R.layout.main); )然后我用命令调用另一个类:

setContentView(secondClass);

在这堂课中,我使用 Canvas 进行绘画,效果很好。 我还创建了返回第一个“类”( R.layout.main )的按钮,但我不知道该怎么做。

现在我的程序是基本的图形淋浴。 在第一堂课中,您键入您的函数,然后他们在第二堂课中绘制它。 但是如何回到头等舱输入另一个函数。 每个 Android 手机都有这个“返回”按钮或箭头,让我退出程序而不是返回插入部分。

在 secondClass 中我无法创建 onCreate 方法,但我也尝试了以下方法,但它们不起作用:

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

startActivity(abc);

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

startActivity(greNaPrvoOkno);

如果您想使用自定义视图(据我了解,您正在扩展 View 类),您可以通过以下方式进行;

考虑您正在展示您的主要活动中的第二类,如下所示;

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 所建议的,您应该为两个屏幕使用两种不同的活动。 它将为您提供更好的控制,并且您的代码将易于理解和维护。

在按钮的 Onclick 事件中,您必须编写 finish(); 而已..

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

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

当您重新设置它时,您仍然需要在其上配置小部件(例如 TextView)。


您不必再次 startActivity 即可返回。

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

例如,当用户在您的第二个活动中按下后退按钮时

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

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

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

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

当在您的第二堂课中按下按钮时,我会调用finish(); 在课堂上,或创建一个新的意图,如下所示:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM