// 在 onClick 中再次調用 setContentView 會導致崩潰
public void onClick(View v) {
setContentView(new MyView(this)); // 崩潰!Activity 不允許多次 setContentView
}
public class MainActivity extends AppCompatActivity {
private ViewGroup container; // 根佈局容器
private View paintLayout; // 預加載的繪圖佈局
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 僅調用一次
container = findViewById(R.id.root_container); // 根佈局 ID
LayoutInflater inflater = LayoutInflater.from(this);
paintLayout = inflater.inflate(R.layout.paint_layout, container, false);
findViewById(R.id.btn_start).setOnClickListener(v -> switchToPaintView());
}
private void switchToPaintView() {
container.removeAllViews(); // 清空現有內容
container.addView(paintLayout); // 添加繪圖 View
// 若 MyView 是自定義 View,直接 new MyView(this) 添加即可
}
}
複雜界面切換建議使用 `FragmentManager` 管理 Fragment,支持回棧、生命周期管理、動畫過渡,是 Android 官方推薦模式。