Java 安卓布局切换
我有一个简单的问题。我正在尝试在主菜单和关于页面之间切换布局。在主菜单中,当我单击“关于”按钮时没有问题。但是在“关于”布局中,当我单击“返回菜单”按钮时,它根本不起作用。该布局的代码在About.java中,它也扩展了活动。请看一看 在MainActivity.java中:Java 安卓布局切换,java,android,Java,Android,我有一个简单的问题。我正在尝试在主菜单和关于页面之间切换布局。在主菜单中,当我单击“关于”按钮时没有问题。但是在“关于”布局中,当我单击“返回菜单”按钮时,它根本不起作用。该布局的代码在About.java中,它也扩展了活动。请看一看 在MainActivity.java中: Button button3 = (Button) findViewById(R.id.button3); button3.setOnClickListener(new View.OnClickListen
Button button3 = (Button) findViewById(R.id.button3);
button3.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(v.getContext(), About.class);
setContentView(R.layout.about);
}
});
工作正常。但是在About.java中:
button1.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
setContentView(R.layout.activity_main);
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
});
什么也没发生。我尝试了inside onClick()的所有组合,但都不起作用。你的想法是什么?谢谢,祝你有一个愉快的一天。试着像你的AboutActivity中的主要活动一样做:
button1_.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(v.getContext(), MainActivity.class);
setContentView(R.layout.activity_main); //should be without this line if you set the layout in your onCreate method in the MainActivity (respectively AboutActivity)
startActivity(intent);
}
});
如果它只工作一次,那么它也应该工作两次在主活动java中,它没有启动任何活动,它基本上只是改变了视图。它似乎起作用了,但实际上不起作用 您应该声明意图,然后调用start activity方法。另一个活动应该有一个方法onCreate,您可以在其中设置内容视图(使用方法setContentView) 应该是这样的: MainActivity.java
Button button3 = (Button) findViewById(R.id.button3);
button3.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(v.getContext(), About.class);
startActivity(intent);
}
});
关于.java
button1.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
});
有关更多信息,请选中此是否可以删除
setContentView(R.layout.activity\u main)代码>在About.java中,然后尝试?哇,真奇怪的代码。你错过了安卓系统工作原理中真正重要的部分。你想做的只是打开不同的活动(我猜),所以startActivity是正确的部分。其他一切都很糟糕,看,你应该看看碎片和活动。如果您只是交换视图而不是完全切换活动,那么这听起来像是使用片段的好例子。因此,在MainActivity上单击replacesetContentView
调用startActivity(intent)代码>呼叫。关于活动,只需调用finish();单击按钮。奖励:设置为MainActivity的子活动,并提供向上导航setContentView(R.layout.activity\u main)代码>将在MainActivity.onCreate()中调用,对吗?为什么我们要明确地称之为?我认为没有必要,当我们创造意图,然后开始活动时,这就足够了,但那家伙设定了它,我认为它不会让事情变得更糟,所以我把它放在那里,但是如果没有它,正确的方法是->文档在开始活动之前设置contentView的目的是什么?setContentView()在开始新活动之前设置布局。文档我知道setContentView做什么,但是在活动开始之前设置contentView的目的是什么?通常我们在活动中调用setContentView