我正在尝试使用许多xml布局制作一个Android应用程序,但我在这里遇到了问题。 问题从第二个按钮开始,然后应用程序崩溃。
public class MonkeyQuest_androidActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button newGame = (Button) findViewById(R.id.newGame);
newGame.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
setContentView(R.layout.name);
final Button setName= (Button) findViewById(R.id.setName);
setName.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
setContentView(R.layout.Menu);
}
});
}
});
}
}
答案 0 :(得分:2)
不是将内容视图设置为新布局,而是启动新活动并在该活动的onCreate()
中设置内容视图,与此活动中的方式相同。
使用以下命令启动新活动:
Intent intent = new Intent(this, NewActivity.class);
startActivity(intent);
了解详情:http://www.javacodegeeks.com/2010/11/android-full-app-part-5-launch-activity.html#ixzz1ljJohpib
否则,您在活动中声明的任何视图将在新的膨胀视图后面(除非重新实例化),这也可能导致许多其他问题。
答案 1 :(得分:1)
每次活动不得多次致电setContentView()
。
如果要切换布局,您需要创建一个新活动才能进入,或者将所需的所有视图放入一个布局中,并使用setVisibility()或某些内容隐藏/显示相关的视图比如ViewFlipper