gpt4 book ai didi

java - onDateSet 不会从平板电脑上的 DatePickerDialog 调用

转载 作者:行者123 更新时间:2023-12-01 19:00:56 25 4
gpt4 key购买 nike

我正在使用 DatePickerDialog 提示用户输入日期。它在模拟器和我的 Samsung Galaxy Nexus 上运行良好,但在我的 Samsung Galaxy Tab 2 上无法调用 onDateSet。

我注意到,该对话框更大,除了正常的旋转 View 之外还显示日历。这会是问题所在吗?

这是一些代码:

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

什么可能导致这种情况?平板电脑中的错误?我错过了什么吗?有人能想到解决方法吗?

非常感谢!

最佳答案

我很惊讶它竟然能正常工作。 onDateSet() 在执行默认 onClick 行为时被调用,但由于您完全设置了新按钮,因此您将摆脱它原来的行为。您可以check the code out 。为什么不在 onDateSet() 中启动 Activity?如果您想要设置文本,那么您可以获取每个按钮而不是设置它们(getButton(BUTTON_POSITIVE))。

此外,请注意 Jelly Bean 中存在一个新错误,其中 onDateSet 将被调用两次,即使您按下返回键也会被调用,并且它们还删除了默认的“取消”按钮。想想吧。

关于java - onDateSet 不会从平板电脑上的 DatePickerDialog 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12344667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com