android按钮导致崩溃

时间:2013-06-05 14:15:04

标签: android button

对于熟悉Android的人来说,这应该是一个非常简单的答案,我只是开始搞乱它。我有两个观点:主要和其他。每个视图都有一个用于切换视图的按钮。这是我的活动:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.other);

    switcher = (Button) findViewById(R.id.button);
    switcherListener = new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.other);
        }
    };
    switcher.setOnClickListener(switcherListener);

    switcher2 = (Button) findViewById(R.id.button2);
    switcherListener2 = new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.main);
        }
    };
    switcher2.setOnClickListener(switcherListener2);
}

private Button switcher, switcher2;
private View.OnClickListener switcherListener, switcherListener2;

问题是它甚至没有加载,Android模拟器说它已停止工作。我做了什么改变才能使这项工作?

1 个答案:

答案 0 :(得分:0)

这是因为switcher2位于视图中,但尚未创建R.layout.main,因此当您调用switcher2 = (Button) findViewById(R.id.button2);时,它处于尚未充气的视图中。尝试以下方法,但这不是很好的编码:

switcher = (Button) findViewById(R.id.button);
    switcherListener = new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.other);
            switcher2 = (Button) findViewById(R.id.button2);
            switcher2.setOnClickListener(switcherListener2);
        }
    };
    switcher.setOnClickListener(switcherListener);

    switcherListener2 = new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.main);
        }
    };