Android 我们可以从DateSetListener获取日期选择器对话框的引用吗?

Android 我们可以从DateSetListener获取日期选择器对话框的引用吗?,android,android-2.2-froyo,Android,Android 2.2 Froyo,是否有任何方法可以从日期集侦听器获取日期选择器对话框的引用,因为其参数只有日期集侦听器的视图 if(Type.equalsIgnoreCase("datepicker") { mField=new EditText(context); ((EditText) mField).setText("Pick Date"); ll.addView(mField); mField.setOnClickListener(new View.OnClickListener() { @Overrid

是否有任何方法可以从日期集侦听器获取日期选择器对话框的引用,因为其参数只有日期集侦听器的视图

  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; 
} 
} 
上述声明的副本。。 DatePickerDialogWithEditText对话框该变量是一个类变量或实例变量,以便可以访问整个类。。。。 我是说像这样

Class A
{
private DatePickerDialogWithEditText dialog;
public some method
{
dialog= new DatePickerDialogWithEditText(context, mdatepickerdialog , mYear, mMonth, mDay, (EditText)mField ); 
}
}
代码如下:

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));
    }   
}

但是我想要datepicker对话框引用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\u OF_MONTH);DatePickerDialogWithEditText dialog=new DatePickerDialogWithEditText(上下文,mdatepickerdialog,mYear,mMonth,mDay,(EditText)mField);dialog.show();});})}private DatePickerDialogWithEditText.OnDateSetListener mdatepickerdialog=new DatePickerDialogWithEditText.OnDateSetListener(){public void onDateSet(DatePicker视图,int-year,int-month,int-date){mYear=year;mm=month;mDay=date;EditText et=((DatePickerDialogWithEditText.OnDateSetListener)this).getAssociatedTextView();et.setText(新建StringBuilder().append(mDay).append(“-”).append(MMOTH).append(“-”).append(mYear));}};}类DatePickerDialogWithEditText扩展DatePickerDialog{EditText tv;DatePickerDialogWithEditText(上下文c,OnDateSetListener oD,int y,int m,int d,EditText tv){super(c,oD,y,m,d);this.tv=tv;}EditText getAssociatedTextView(){return tv;}}}在onDateSetListener()中,我必须获取DatePickerDialog的引用,以便调用getAssociatedTextView(),有什么方法可以做到这一点吗?
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));
    }   
}