首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android:自定義 View 類別無法直接跳轉 Layout,正確做法是繼承 Activity

     編輯:程式設計綜合問答

錯誤認知

新建一個繼承 `View` 的類別,構造函數接收 `Context`,試圖在該類別內呼叫 `setContentView(R.layout.main)` 跳轉介面,但找不到該方法。

根本原因

Android 中介面切換只能在 Activity 之間進行,不能在 View 中「跳轉布局」。 `setContentView` 是 `Activity` 的方法,`View` 類別不具備此能力。

正確架構

  1. 建立一個繼承 `Activity` 的類別(如 `MainActivity`)。
  2. 在 `onCreate()` 中呼叫 `setContentView(R.layout.main)` 載入佈局。
  3. 若需自定義繪圖邏輯,建立繼承 `View` 的類別(如 `MyCustomView`),在佈局 XML 中以 `` 方式嵌入,或在 `Activity` 程式碼中 `addView()` 動態加入。

程式碼範例

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); // 這裡才能呼叫
    }
}

// 自定義 View 只負責繪製,不負責跳轉
public class MyCustomView extends View {
    public MyCustomView(Context context) { super(context); }
    @Override protected void onDraw(Canvas canvas) { /* 繪圖邏輯 */ }
}

總結

View 負責「畫 UI」,Activity 負責「管生命週期與切換畫面」。切勿混淆兩者職責。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved