我正在和BaseAdapter班级一起工作.我想在其中显示DatePickerDialog.当我使用时,showDialog(DATE_DIALOG_ID); 我收到错误.
请指导我这个.
package com.OrganisemeePhone.adapter;
import java.util.ArrayList;
import java.util.Vector;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.provider.OpenableColumns;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.DatePicker;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.CompoundButton.OnCheckedChangeListener;
public class TaskFilterAdapter extends BaseAdapter {
String date, month, year,setdueDate;
//int dateFormat;
DatePickerDialog.OnDateSetListener dateListener;
int myYear, myMonth, myDay;
int dateFormat; …Run Code Online (Sandbox Code Playgroud) 似乎任何使用Marshmallow(Android 6.0)的人都无法DatePicketDialog在我的应用程序中使用.似乎遇到了某种我遇到的主题问题.我用一个DialogFragment包含一个DatePicketDialog供用户选择生日.以下是Android 5.x和6.x的DialogFragment镜头.
我试图在DatePickerDialog构造函数中添加一个主题,但这使得DialogFragment全屏,我不希望这样.有谁知道我怎么能看到DatePickerDialog它像棉花糖之前?
更新1
这是我创建的代码DialogFragment:
DialogFragment ageFragment = new DatePickerDialogFragment();
ageFragment.show(getFragmentManager(), "datePicker");
Run Code Online (Sandbox Code Playgroud)
这是onCreateDialog里面的DatePickerDialogFragment:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker if no filters are set
Calendar cal = Calendar.getInstance();
// Set the date 18 years previous, since only 18 and older are allowed on the app
cal.add(Calendar.YEAR, -18);
int year, …Run Code Online (Sandbox Code Playgroud) 我正在使用DatePickerDialog和DatePicker来设置特定范围.
datePicker.setMinDate(minDate);
datePicker.setMaxDate(maxDate);
Run Code Online (Sandbox Code Playgroud)
如果我的最小/最大 - 日期在一个月的范围内(例如:2014年7月7日 - 2014年2月27日),我仍然会在对话框中显示邻居月份(1月,3月).如果我选择上个月(1月),对话框会自动切换到minDate,月份会切换回2月.未来月份也是如此.

有没有办法解决这个问题,所以我只显示在我的范围内的月份?
我正在创建一个像这样的datepickerdialog:
Calendar newCalendar = Calendar.getInstance();
myDatePicker = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
// do something
}
}
, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
myDatePicker.show();
Run Code Online (Sandbox Code Playgroud)
不幸的是,我回来的东西看起来像这样:
我真正希望获得的是这样的东西:
我在谈论标题.我想要那一天,并在那个月,一个月,一年之后..这似乎是相当标准和默认的,因为我看到大量的示例屏幕截图看起来像漂浮在周围,但显然我正在做的事情错了,因为它看起来不像我.
编辑:一个潜在的解决方法是使用第三方库:
https://github.com/wdullaer/MaterialDateTimePicker
但这并不理想.我仍然希望找到一个不需要第三方库的解决方案.
我需要从 Android DatePickerDialog 中选择多个日期。下面是我的片段。这样,我就只能选择一个日期。我见过其他库,例如https://github.com/square/android-times-square。但是,我对原生 Android 代码更感兴趣。
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val currentDate = Calendar.getInstance()
val year = currentDate.get(Calendar.YEAR)
val month = currentDate.get(Calendar.MONTH)
val day = currentDate.get(Calendar.DAY_OF_MONTH)
val maxDate = Calendar.getInstance()
maxDate.add(Calendar.MONTH, 3)
val datePickerDialog = DatePickerDialog(activity, onDateSet, year, month, day)
datePickerDialog.datePicker.minDate = currentDate.timeInMillis
datePickerDialog.datePicker.maxDate = maxDate.timeInMillis
return datePickerDialog
}
Run Code Online (Sandbox Code Playgroud) 我正在做一个 Android 应用程序,我必须显示一个 DatePickerDialog。事实上,该应用程序将运行在具有智能屏幕的设备上,而日历不适合其中。我希望日历更小,同时保持相同的比例。
我尝试使用DatePicker 上的ScaleY和函数来调整它的大小,但它只是调整所有 DatePicker 的大小。ScaleX
这是我用来显示 DatePickerDialog 的代码
public void ShowDate() {
final Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dateForm = new DatePickerDialog(ViewForm.this, R.style.ColorOne, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int year, int monthOfYear, int dayOfMonth) {
}
}, year, month, day);
dateForm.show();
DatePicker dp = dateForm.getDatePicker();
dp.setScaleY(Float.parseFloat("0.5"));
dp.setScaleX(Float.parseFloat("0.5"));
}
Run Code Online (Sandbox Code Playgroud)
我希望有人知道如何做到这一点
谢谢
java android android-datepicker datepickerdialog android-studio
我很想有一个选项,我可以使用 calendarConstraints 选择一个 maxDate 和一个 minDate。就像普通的 DatePicker 有DatePicker.setMaxDate()和DatePicker.setMinDate()方法一样,我会喜欢 materialDatePicker 的相同方法。
我在开发我的应用程序时使用了 materialDatePicker,我发现很难为打开的 datePicker 设置 minDate 和 maxDate 属性。我正在打开日期选择器以在 2 个不同的文本字段中选择开始日期和结束日期以添加特定时间段。不,我不想选择范围日期。我已经研究过这个,它不符合我的要求。我可以设置一个maxDate使用
calendarConstraints.setValidator(DateValidatorPointForward.from(startDate))
Run Code Online (Sandbox Code Playgroud)
但我无法使用 materialDatePicker 选择 minDate。
代码:
CalendarConstraints.Builder ccb=new CalendarConstraints.Builder();
// ccb.setEnd(calendar.getTimeInMillis());
// ccb.setEnd(today);
MaterialDatePicker.Builder<Pair<Long,Long>> builder = MaterialDatePicker.Builder.dateRangePicker();
builder.setTitleText("Select Date Range");
builder.setCalendarConstraints(ccb.build());
Run Code Online (Sandbox Code Playgroud) android datepicker android-datepicker datepickerdialog android-studio
我有一个编辑字段,当我点击它时,日期选择器将打开,但我无法在第一次点击时弹出日期选择器。如果我第一次单击编辑字段,则不会出现日期选择器。当我第二次或第三次单击时,它正在显示。这是我的代码:
public class MainActivity extends Activity implements OnClickListener {
private Calendar calendar;
private int day;
private int month;
private int year;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
date = (EditText) findViewById(R.id.date);
calendar = Calendar.getInstance();
day = calendar.get(Calendar.DAY_OF_MONTH);
month = calendar.get(Calendar.MONTH);
year = calendar.get(Calendar.YEAR);
date.setOnClickListener(this);
}
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
return new DatePickerDialog(this, datePickerListener, year, month, day);
}
private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int selectedYear, int …Run Code Online (Sandbox Code Playgroud) 我正在使用 xamarin android datepicker 对话框片段。但试图在今天和今天 + 3 天之间启用日期。它不起作用。它甚至不适用于最小日期选项。
public static readonly string TAG = "X:" + typeof (DatePickerFragment).Name.ToUpper();
Action<DateTime> _dateSelectedHandler = delegate { };
public void OnDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
// Note: monthOfYear is a value between 0 and 11, not 1 and 12!
DateTime selectedDate = new DateTime(year, monthOfYear +1, dayOfMonth);
Log.Debug(TAG, selectedDate.ToLongDateString());
_dateSelectedHandler(selectedDate);
}
public static DatePickerFragment NewInstance(Action<DateTime> onDateSelected)
{
DatePickerFragment frag = new DatePickerFragment();
frag._dateSelectedHandler = onDateSelected;
return frag;
}
public override …Run Code Online (Sandbox Code Playgroud) 我正在创建一个具有 EditText 的片段,当我单击它时,会显示一个 DatePickerDialog ..但是每当我单击 EditText 时,我的应用程序就会崩溃..
错误在这一行:
return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) getActivity(), year, month, day);
Run Code Online (Sandbox Code Playgroud)
我的费用 FRAGMENT Java 代码(仅限日期选择代码):
@Nullable
@Override
public View onCreateView(final LayoutInflater inflater, final ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_expense, container, false);
mDisplayDate = (EditText) view.findViewById(R.id.datePick);
mDisplayDate.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
DialogFragment datePicker = new DatePickerFragment();
datePicker.show(getFragmentManager(), "date picker");
}
});
return view;
}
@Override
public void onDateSet(DatePicker view, int year, int month, …Run Code Online (Sandbox Code Playgroud) android ×10
datepickerdialog ×10
datepicker ×3
java ×3
baseadapter ×1
calendar ×1
themes ×1
widget ×1