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