对于熟悉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模拟器说它已停止工作。我做了什么改变才能使这项工作?
答案 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);
}
};