2011-07-15 74 views
0

有沒有辦法從Date Set Listener中獲取Date Picker對話框的引用,因爲它的參數中只有Date Set Listener的視圖?我們可以從DateSetListener中獲取Date引用的日期選擇器Dialog嗎?

if(Type.equalsIgnoreCase("datepicker") 
{ mField=new EditText(context); 
((EditText) mField).setText("Pick Date"); 
ll.addView(mField); 
mField.setOnClickListener(new View.OnClickListener() 
{ 
@Override public void onClick(View v) 
{ 
final Calendar cal = Calendar.getInstance(); 
mYear = cal.get(Calendar.YEAR); 
mMonth = cal.get(Calendar.MONTH); 
mDay = cal.get(Calendar.DAY_OF_MONTH); 
DatePickerDialogWithEditText dialog= new DatePickerDialogWithEditText(context, mdatepickerdialog , mYear, mMonth, mDay, (EditText)mField); 
dialog.show(); } }); 
} } 
    private DatePickerDialogWithEditText.OnDateSetListener mdatepickerdialog = new DatePickerDialogWithEditText.OnDateSetListener() 
{ 
public void onDateSet(DatePicker view , int year , int month, int date) 
{ 
mYear = year; mMonth = month; mDay = date; EditText et = ((DatePickerDialogWithEditText.OnDateSetListener)this).getAssociatedTextView(); 
et.setText(new StringBuilder().append(mDay).append("-").append(mMonth).append("-").append(mYear)); } }; 
} 
    class DatePickerDialogWithEditText extends DatePickerDialog 
{ 
EditText tv; 
DatePickerDialogWithEditText(Context c, OnDateSetListener oD, int y, int m, int d, EditText tv) 
{ 
super(c, oD, y, m, d); this.tv = tv; 
} 
EditText getAssociatedTextView() 
{ 
return tv; 
} 
} 

回答

1

這裏是代碼:

if(Type.equalsIgnoreCase("datepicker")) 
     { 
      mField=new EditText(context); 
      ((EditText) mField).setText("Pick Date"); 
      ll.addView(mField); 
      mField.setOnClickListener(new View.OnClickListener() 
      { 
       @Override 
       public void onClick(View v) 
       { 
        dialognew = new Mynewdialog(context); 
        dialognew.dialog_obj((EditText) mField); 
       } 
      }); 
     } 
    } 

    protected DatePickerDialogWithEditText.OnDateSetListener mdatepickerdialog = new DatePickerDialogWithEditText.OnDateSetListener() 
    { 
     public void onDateSet(DatePicker view , int year , int month, int date) 
     { 
      mYear = year; 
      mMonth = month; 
      mDay = date; 
      dialognew.showdialogtext(); 

     } 
    }; 
} 

class DatePickerDialogWithEditText extends DatePickerDialog 
{ 
    EditText tv;  

    DatePickerDialogWithEditText(Context c, OnDateSetListener oD, int y, int m, int d, EditText tv) 
    { 
     super(c, oD, y, m, d); 
     this.tv = tv; 
    } 

    EditText getAssociatedTextView() 
    { 
     return tv; 
    } 
} 


class Mynewdialog 
{ 
    private Context context; 
    Display dis = new Display(context); 
    private DatePickerDialogWithEditText dialog; 

    public Mynewdialog(Context mcontext) 
    { 
     context=mcontext;  
    } 

    public void dialog_obj(EditText editTextView) 
    { 
     final Calendar cal = Calendar.getInstance(); 
     dis.mYear = cal.get(Calendar.YEAR); 
     dis.mMonth = cal.get(Calendar.MONTH); 
     dis.mDay = cal.get(Calendar.DAY_OF_MONTH); 
     dialog = new DatePickerDialogWithEditText(context, dis.mdatepickerdialog, dis.mYear, dis.mMonth, dis.mDay, editTextView); 
     dialog.show(); 
    } 

    public void showdialogtext() 
    { 
     EditText et = dialog.getAssociatedTextView(); 
     et.setText(new StringBuilder().append(dis.mDay).append("-").append(dis.mMonth).append("-").append(dis.mYear)); 
    } 
} 
1
DatePickerDialogWithEditText dialog= new DatePickerDialogWithEditText(context, mdatepickerdialog , mYear, mMonth, mDay, (EditText)mField); 

上述聲明instaed .. DatePickerDialogWithEditText對話框變量類變量或者實例變量,這樣它會visisble給全班.... 我的意思是這樣

Class A 
{ 
private DatePickerDialogWithEditText dialog; 
public some method 
{ 
dialog= new DatePickerDialogWithEditText(context, mdatepickerdialog , mYear, mMonth, mDay, (EditText)mField); 
} 
} 
+0

但我想datepicker對話框參考 – Geetanjali

+0

if(Type.equalsIgnoreCase(「datepicker」){ \t \t \t mField = new EditText(context); ((EditText)mField).setText(「Pick Date」); \t \t \t ll.addView(mField); \t \t \t mField.setOnClickListener(新View.OnClickListener() { \t @覆蓋 \t公共無效的onClick(視圖v) { \t \t最終日曆CAL = Calendar.getInstance(); \t \t \t \t \t mYear = cal.get(Calendar.YEAR); \t \t \t \t \t mMonth = cal.get(的Calendar.MONTH); \t \t \t \t \t mDay = cal.get(Calendar.DAY_OF_MONTH); \t \t \t \t \t DatePickerDialogWithEditText對話框=新DatePickerDialogWithEditText(上下文,mdatepickerdialog,mYear,mMonth,MDAY,(的EditText)mField); \t \t \t \t \t \t \t \t \t \t \t dialog.show(); \t \t \t \t} \t \t \t}); \t \t} \t} – Geetanjali

+0

private DatePickerDialogWithEditText.OnDateSetListener mdatepickerdialog = new DatePickerDialogWithEditText。OnDateSetListener() \t { \t \t公共無效onDateSet(DatePicker的觀點,詮釋年,月整型,詮釋日期) \t \t { \t \t \t mYear =年; \t \t \t mMonth = month; \t \t \t mDay = date; \t \t \t EditText et =((DatePickerDialogWithEditText.OnDateSetListener)this).getAssociatedTextView(); (新的StringBuilder()。append(mDay).append(「 - 」)。append(mMonth).append(「 - 」)。append(mYear)); \t \t} \t}; } – Geetanjali

相關問題