我正在尝试制作一个具有多种布局的应用程序。有没有某种有效的方法来显示多个布局?我的应用程序有按钮,每个按钮都会导致不同的布局。因此,任何人都可以给我关于使用什么的想法吗?我今年 14 岁,对 Android 完全陌生。我有一定的java背景,仅此而已。谢谢你的帮助!这是我的主要 Activity ...
package com.example.submenus;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
public void onBackPressed() {
setContentView(R.layout.activity_main);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// This is for Audi A4
Button button = (Button) findViewById(R.id.a4button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
setContentView(R.layout.audi);
}
} );
// This is for Audi A6
Button button1 = (Button) findViewById(R.id.a6button);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
setContentView(R.layout.audia6);
}
} );
// This is for Audi Q5
Button button2 = (Button) findViewById(R.id.q5button);
button2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
setContentView(R.layout.audiq5);
}
} );
// This is for Audi R8
Button button3 = (Button) findViewById(R.id.r8button);
button3.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
setContentView(R.layout.audir8);
}
} );
}
}
再说一次,我只想说这是一个有主菜单的应用程序。在该菜单中,我有多个按钮,相应地导致不同的布局。该应用程序工作正常,直到我按下后退按钮然后单击按钮。让我重新表述一下...我单击一个按钮,它会将我带到正确的布局。然后我可以点击后退按钮,它会将布局带回到主菜单,就像它应该的那样。然后,如果我单击另一个按钮,应用程序就会卡住并崩溃。有没有办法来解决这个问题?感谢您的帮助!
最佳答案
这应该可以解决您的错误,但我认为这是一个非常糟糕的方法。
public class MainActivity extends Activity {
public void onBackPressed() {
// You need to re-findView and re-setOnClickListener to button-button3
setMain();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setMain();
}
public void setMain() {
setContentView(R.layout.activity_main);
// This is for Audi A4
Button button = (Button) findViewById(R.id.a4button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
setContentView(R.layout.audi);
}
});
// This is for Audi A6
Button button1 = (Button) findViewById(R.id.a6button);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
setContentView(R.layout.audia6);
}
});
// This is for Audi Q5
Button button2 = (Button) findViewById(R.id.q5button);
button2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
setContentView(R.layout.audiq5);
}
});
// This is for Audi R8
Button button3 = (Button) findViewById(R.id.r8button);
button3.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
setContentView(R.layout.audir8);
}
});
}
}
您可以创建很多 Activity ,那么该怎么办?
创建另一个扩展 Activity 的类
public class ChildActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { // Create another child.xml in your res > layout setContentView(R.layout.child); } }
在
AndroidManifest.xml
中的application
标记下注册activity
<activity name=".ChildActivity"/>
从
MainActivity
调用ChildActivity
// This is for Audi A4 Button button = (Button) findViewById(R.id.a4button); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent childIntent = new Intent(MainActivity.this, ChildActivity.class); startActivity(childIntent); } });
就是这样。我希望我没有遗漏任何东西。
注意
如果您要使用activity
方法。您应该删除 MainActivity
中的 onBackPressed
方法。
关于android - 有没有更好的方法可以在 android 中显示不同的布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20110619/