看板 AndroidDev 關於我們 聯絡資訊
各位前輩好: 我想寫一個日期專用的textView,透過onclick選擇日期 因為不想要每個textView都重新copy/paste,所以想自己做一個元件。 只是在show Dailog的時候都會有error產生,想請版上先進幫我看一下有甚麼問題。 部分程式碼如下: DateTextView extends TextView{ private DatePickerDailog dpd; .... .... //建構子 public DateTextView(Context context, AttributeSet attrs) { super(context, attrs); Log.d("DateTextView", "constructor"); setAttributeField(attrs); dpd = new DatePickerDialog(getContext(), onDateSetListener, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)); } @Override public void onClick(view v){ //這行沒有會出現removeChild error ((ViewGroup) this.getParent()).removeView(this); //這行會出現requestFeature() must be called before adding content dpd.show(); } } -- ζ ξ 長的越帥,責任越重 ○- <(╯ 難怪這一生我活著都沒什麼壓力.. ■) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.44.33 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1421638842.A.8CF.html ※ 編輯: jacky951 (60.251.44.33), 01/19/2015 11:41:30
roganwww: http://goo.gl/vmq6Vx 01/19 12:09
jacky951: 那個已經google 過了 不過沒有跟我一樣的情況 01/19 12:38
jacky951: 我也知道setContetView這個動作必須在requsetF...之前 01/19 12:39
jacky951: 重點在於如何把textView & Dialog綁在 某個activity底下 01/19 12:39
skypiece: 請問一下為何要removeView? 另外Constructor中已經帶入 01/20 02:52
skypiece: context 為何不使用該context 而是使用getContext()? 01/20 02:53
skypiece: 不能將private DatePickerDailog dpd; 宣告為static 嗎? 01/20 02:54
removeView的問題,可能是我對於這個架構不是很懂,看log後做的測試 我也還在測試中,看要怎麼處理這個部分。 context的原因是因為我是用 constructor (){ init(); } init(){ dtp =...; } 的方式去做。所以用getContext去取這個textView的Context。 不知道這樣是否我的理解有誤呢? 至於static的問題,因為我想要一個textView綁一個datePickerDialog 方便讓我在xml中直接使用。 ※ 編輯: jacky951 (60.251.44.33), 01/21/2015 11:20:55
skypiece: 可否提供該部分完整代碼或是專案做測試? 01/22 14:12
第一次用github,不知道這樣可不可以 https://github.com/ArJay951/test/blob/master/DateTextView *剛測試一下,在new datePickerDialog之後立馬show(),之後功能就正常。 結果雖然是我要的,不過不太懂過程,現在正在看source code理解中... ※ 編輯: jacky951 (60.251.44.33), 01/22/2015 16:19:51 ※ 編輯: jacky951 (60.251.44.33), 01/22/2015 16:39:48
skypiece: // setDatePickerViews(); 將他註解掉後就可跑了 01/22 17:59
skypiece: 還沒仔細看那在幹嘛... 問題應該出在裡面 等下班幫你看 01/22 17:59
那個是用來設定是否顯示、年、月、日的設定 ※ 編輯: jacky951 (60.251.44.33), 01/22/2015 18:12:17
skypiece: http://ppt.cc/FNh1 趕時間的話建議用這下去改 01/22 18:25
skypiece: 測試過可用... 01/22 18:27
skypiece: picker = datePickerDialog.getDatePicker(); 01/22 18:28
jacky951: 是不趕時間啦 就想了解是怎麼運作,學一下這樣。 01/22 18:39
jacky951: 謝謝你喔~ 01/22 18:39
skypiece: 只知道原因出在 findDatePicker(ViewGroup group) 01/22 21:57
skypiece: 只要有call就爆炸... 01/22 21:58
skypiece: picker = datePickerDialog.getDatePicker(); 改成這樣 01/22 21:59
skypiece: 就可正常使用 01/22 21:59
skypiece: http://codepad.org/n1UccPi0 可隱藏欄位"年" 01/22 22:04
skypiece: 用findDatePicker(ViewGroup group) 找datePicker一直 01/22 22:05
skypiece: return null... 我比較好奇為什麼要這樣做= =? 01/22 22:05
skypiece: 雖然說其實代碼看起來沒啥問題.. 恕小弟不才幫不上忙了. 01/22 22:22
jacky951: 不會啦 真的很感謝你~我再研究研究 01/23 09:35
jacky951: 老實說我也不知道加findDatePicker是幹嘛的 哈 01/23 09:41
jacky951: 可能是那個時候不知道沒研究到怎麼取datepicker的時候 01/23 09:41
jacky951: 先用網路上人家的Code試看看的吧! 01/23 09:42