[英]How to make a small change to Android source code, and incorporate into your own project
我想對Android標准的TimePicker
類進行一些更改。 具體來說,我正在嘗試對其進行更改,以使其以15分鍾為增量而不是1分鍾為增量。
這篇文章幫助我按照應用程序的要求將分鍾值的范圍限制為{0,15,30,45}。 但是,正如我在后續評論中指出的那樣,分鍾微調器仍將前一分鍾顯示為當前值-1,將下一分鍾顯示為當前值+ 1,這將創建一個馬虎的用戶界面。
我查看了相關的Android源代碼 ,看來我需要進行的更改非常簡單。 但是,當我嘗試將源代碼復制到我的項目中時,遇到了與package
聲明,在哪里找到Widget
,如何解析R.id
變量等有關的無數錯誤。
所以我的問題是:
從Android源代碼對給定類進行少量更改並將其合並到您自己的項目中的最佳方法是什么?
就我而言,我只需要對TimePicker
和NumberPicker
進行一些小的更改,但是我不確定如何在我的項目中進行適當的設置。
感謝您的任何建議。
但是,當我嘗試將源代碼復制到項目中時,遇到了與包聲明有關的無數錯誤
您的源文件的目錄必須與程序包名稱匹配。 並且由於您無法覆蓋android.widget.TimePicker
,因此您將需要將該類移動到新的包中,或者給它一個新的名稱。
在哪里找到小部件
這意味着您將TimePicker
復制到了一個程序包中。 很好,但是隨后您需要為TimePicker
從其原始包中引用的類添加適當的import
語句。 或者,您需要將(重命名的) TimePicker
保留在android.widget
,將此包添加到您的項目中。 這是基本的Java。
如何解析R.id變量
如果TimePicker
依賴於不屬於Android SDK的資源,則還需要將這些資源從AOSP復制到項目中。
從Android源代碼對給定類進行少量更改並將其合並到您自己的項目中的最佳方法是什么?
恕我直言,這不能輕易地抽象地回答。 一般來說,您會執行上面列出的各種操作。
最好是將相關類子類化,並覆蓋要更改的方法。
在Java中,您可以在子類中執行以下操作:
您可以編寫一個隱式或使用關鍵字super調用超類的構造函數的子類構造函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.