按照 Android 教程中的步骤,我遇到了 DatePickerDialog 的问题。
在获得焦点时链接 TextView 以启动 DatePickerDialog,如下所示:
EditText fNac = (EditText)findViewById(R.id.regFecha);
fNac.setonfocusChangeListener(new View.onfocusChangeListener(){
@Override
public void onfocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
// Desde aquí lanzamos el datepicker
if (hasFocus){
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager() , "datePicker");
}
}
工作正常,DatePickerDialog 已启动。我实例化了一个以这种方式创建的新 DatePickerFragment 类:
import java.util.Calendar;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.util.Log;
import android.widget.DatePicker;
public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
private DatePickerDialog mDatePickerDialog;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState){
// Usamos la fecha actual como primera fecha a mostrar
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);
// Devolvemos la instancia de un Dialog con la fecha actual
mDatePickerDialog = new DatePickerDialog(getActivity(),this,year,month,day);
return mDatePickerDialog;
}
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
// TODO Auto-generated method stub
Log.v("LOG_CAT","OK");
}
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
Log.v("LOG_CAT", "Ok2");
}
}
这就是问题所在。我想使用 onDateChanged 方法更改对话框的标题,但它从未被调用过。我试图创建一个 onDateChangedListener 但 DatePickerDialog 没有。
我怎样才能做到这一点?
提前致谢。