【发布时间】:2013-11-19 19:09:30
【问题描述】:
我有两个 editText 视图,当用户单击第一个 editText 时,会打开一个对话框片段窗口并且用户选择日期。第二个editText也是如此。选择的日期应该在editText中“写入”。当我有一个editText时,这就像一个魅力。但是我怎么知道点击了哪个 ediText,因为它们在同一个活动中,我必须在 dialogFragment 类中编辑 editText?
我已经看到了一些其他的答案,但其中一些确实已经过时 - 已弃用,而另一些则对我没有帮助。
这是我的代码:
开始上课:
public class Start extends FragmentActivity {
private EditText ddEdit;
private EditText adEdit;
int year;
int month;
int day;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
}
public void showDatePickerDialog(View v) {
switch (v.getId()) {
//i know this is not correct
case R.id.etDepDate:
DialogFragment depFragment = new DatePick();
depFragment.show(getFragmentManager(), "datepicker1");
break;
case R.id.etArrDate:
DialogFragment arrFragment = new DatePick();
arrFragment.show(getFragmentManager(), "datepicker2");
break;
}
}
DatePick 类:
public class DatePick extends DialogFragment implements
DatePickerDialog.OnDateSetListener {
private EditText ddEdit;
private EditText adEdit;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
String date = new String(day + "/" + (month + 1) + "/" + year);
//????
//how I know here which view was clicked so I can call the editTextById method?
//??????
}
public void editTextById(View v, String date) {
switch (v.getId()) {
case R.id.etDepDate:
setDate(date, ddEdit);
setDate(date, adEdit);
break;
case R.id.etArrDate:
setDate(date, adEdit);
break;
}
}
public void setDate(String date, EditText editText) {
editText.setText(date);
}
@Override
public void show(FragmentManager manager, String tag) {
// TODO Auto-generated method stub
super.show(manager, tag);
}
}
【问题讨论】:
标签: android android-dialogfragment android-datepicker