这是我的下面的代码我想多次在activity_main和activity_second之间切换,但它给了我错误
public class MainActivity extends ActionBarActivity {
Button buttonMain, buttonSecond;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonMain = (Button) findViewById(R.id.buttonMain);
buttonSecond = (Button) findViewById(R.id.buttonSecond);
buttonMain.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
setContentView(R.layout.activity_second); //
}
});
buttonSecond.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
setContentView(R.layout.activity_main);
}
});
}
}
答案 0 :(得分:1)
当您致电setContentView()
时,活动中显示的视图层次结构将替换为新的视图层次结构。因此,您在上一个视图中的按钮也会与其单击侦听器一起消失。因此,在调用setContentView()
之后,您需要使用findViewById()
刷新任何视图引用并重置任何单击侦听器。
要在运行时更换Android-y视图层次结构,请考虑使用片段,其中一个片段用于activity_main布局,另一个片段用于activity_second。