[問題] TextView OnClick showDialog事件

作者: jacky951 (藍憶)   2015-01-19 11:40:22
各位前輩好:
我想寫一個日期專用的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();
}
}
作者: roganwww (=..=)   2015-01-19 12:09:00
作者: jacky951 (藍憶)   2015-01-19 12:38:00
那個已經google 過了 不過沒有跟我一樣的情況我也知道setContetView這個動作必須在requsetF...之前重點在於如何把textView & Dialog綁在 某個activity底下
作者: skypiece (SkeeterWang)   2015-01-20 02:52:00
請問一下為何要removeView? 另外Constructor中已經帶入context 為何不使用該context 而是使用getContext()?不能將private DatePickerDailog dpd; 宣告為static 嗎?
作者: jacky951 (藍憶)   2015-01-22 18:39:00
是不趕時間啦 就想了解是怎麼運作,學一下這樣。謝謝你喔~
作者: skypiece (SkeeterWang)   2015-01-22 21:57:00
只知道原因出在 findDatePicker(ViewGroup group)只要有call就爆炸...picker = datePickerDialog.getDatePicker(); 改成這樣就可正常使用http://codepad.org/n1UccPi0 可隱藏欄位"年"用findDatePicker(ViewGroup group) 找datePicker一直return null... 我比較好奇為什麼要這樣做= =?雖然說其實代碼看起來沒啥問題.. 恕小弟不才幫不上忙了.
作者: jacky951 (藍憶)   2015-01-23 09:35:00
不會啦 真的很感謝你~我再研究研究老實說我也不知道加findDatePicker是幹嘛的 哈可能是那個時候不知道沒研究到怎麼取datepicker的時候先用網路上人家的Code試看看的吧!

Links booklink

Contact Us: admin [ a t ] ucptt.com