我可能有一个简单的问题,如何切换布局,但它对我来说有点复杂。我有一个主要的课程,onCreate
(setContentView(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);
我知道我的英语不好。希望你明白。
谢谢。
答案 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);
但是,这种方法的缺点是,如果用户想要使用后退按钮,他们可能需要滚动浏览多层活动。