不能使用超过2个布局

时间:2012-02-07 19:55:48

标签: android class layout button crash

我正在尝试使用许多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);
                }
            });
        }
    });
}

}

2 个答案:

答案 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