Java onDateSet未从tablet上的DatePickerDialog调用
我正在使用DatePickerDialog提示用户输入日期。它在模拟器和我的三星Galaxy Nexus上运行良好,但onDateSet在我的三星Galaxy Tab 2上没有被调用 我注意到,对话框更大,除了正常的旋转视图外,还显示了一个日历。这就是问题所在吗 下面是一些代码:Java onDateSet未从tablet上的DatePickerDialog调用,java,android,tabs,galaxy,datepickerdialog,Java,Android,Tabs,Galaxy,Datepickerdialog,我正在使用DatePickerDialog提示用户输入日期。它在模拟器和我的三星Galaxy Nexus上运行良好,但onDateSet在我的三星Galaxy Tab 2上没有被调用 我注意到,对话框更大,除了正常的旋转视图外,还显示了一个日历。这就是问题所在吗 下面是一些代码: import java.util.Calendar; import java.util.Date; import android.app.DatePickerDialog; import android.app.Di
import java.util.Calendar;
import java.util.Date;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.widget.DatePicker;
import com.cbit.gtbetapp.R;
import com.cbit.gtbetapp.gui.racedata.MeetingDataActivity;
import com.cbit.gtbetapp.gui.racedata.MeetingListFragment;
import com.cbit.gtbetapp.logic.Utility;
public class DatePickerFragment extends DialogFragment implements
DatePickerDialog.OnDateSetListener {
protected Date date = null;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Utility.getToday();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
date = c.getTime();
// Create a new instance of DatePickerDialog and return it
DatePickerDialog dialog = new DatePickerDialog(getActivity(), this, year, month, day) {
@Override
public void onDateChanged(DatePicker view, int year, int month, int day) {
super.onDateChanged(view, year, month, day);
setTitle(getString(R.string.date_picker_title));
}
};
dialog.setTitle(getString(R.string.date_picker_title));
dialog.setButton(DatePickerDialog.BUTTON_POSITIVE,
getString(android.R.string.ok), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
Intent intent = new Intent(getActivity(), MeetingDataActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra(MeetingListFragment.EXTRA_DATE, date.getTime());
startActivity(intent);
}
});
dialog.setButton(DatePickerDialog.BUTTON_NEGATIVE,
getString(R.string.button_cancel),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
return dialog;
}
public void onDateSet(DatePicker view, int year, int month, int day) {
Calendar c = Calendar.getInstance();
c.clear();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, day);
date = c.getTime();
}
}
这是什么原因造成的?平板电脑里有个虫子?我错过什么了吗?有人能想出一个解决办法吗
非常感谢 我很惊讶它居然能起作用。当执行默认的
onClick
行为时,会调用onDateSet()
,但由于您完全设置了新按钮,因此您就摆脱了原始行为。你可以。为什么不在onDateSet()
中启动活动?如果您想要设置文本,那么您可以获取每个按钮而不是设置它们(getButton(button\u POSITIVE)
)
另外,请注意Jelly Bean中有一个新的bug,
onDateSet
将被调用两次,即使您按下back,也会被调用,而且他们还删除了默认的取消按钮。想想看。我很惊讶它居然能工作。当执行默认的onClick
行为时,会调用onDateSet()
,但由于您完全设置了新按钮,因此您就摆脱了原始行为。你可以。为什么不在onDateSet()
中启动活动?如果您想要设置文本,那么您可以获取每个按钮而不是设置它们(getButton(button\u POSITIVE)
)
另外,请注意Jelly Bean中有一个新的bug,
onDateSet
将被调用两次,即使您按下back,也会被调用,而且他们还删除了默认的取消按钮。仔细想想。这里有一个解决我提到的问题的方法。谢谢你给我指出了这个很好的选择!它工作得很好!这里有一个解决我提到的问题的方法。谢谢你给我指出了这个很好的选择!它工作得很好!