DatePickerDialogがあり、月と年のみを表示したい。このコードを変更するにはどうすればよいですか?
public void chooseDate2(View v) {
new DatePickerDialog(
act.this,
d1,
dateAndTime1.get(Calendar.YEAR) + 2,
dateAndTime1.get(Calendar.MONTH),
dateAndTime1.get(Calendar.DAY_OF_MONTH)
).show();
}
private void updateLabel2() {
scadenza.setText(fmtDateAndTime.format(dateAndTime1.getTime()));
}
DatePickerDialog.OnDateSetListener d1=new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
dateAndTime1.set(Calendar.YEAR, year);
dateAndTime1.set(Calendar.MONTH, monthOfYear);
dateAndTime1.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateLabel2();
}
};
ありがとう
次のコードを試してください。年と月のみ(日なし)でDatePicker
を表示します
private DatePickerDialog createDialogWithoutDateField() {
DatePickerDialog dpd = new DatePickerDialog(this, null, 2014, 1, 24);
try {
Java.lang.reflect.Field[] datePickerDialogFields = dpd.getClass().getDeclaredFields();
for (Java.lang.reflect.Field datePickerDialogField : datePickerDialogFields) {
if (datePickerDialogField.getName().equals("mDatePicker")) {
datePickerDialogField.setAccessible(true);
DatePicker datePicker = (DatePicker) datePickerDialogField.get(dpd);
Java.lang.reflect.Field[] datePickerFields = datePickerDialogField.getType().getDeclaredFields();
for (Java.lang.reflect.Field datePickerField : datePickerFields) {
Log.i("test", datePickerField.getName());
if ("mDaySpinner".equals(datePickerField.getName())) {
datePickerField.setAccessible(true);
Object dayPicker = datePickerField.get(datePicker);
((View) dayPicker).setVisibility(View.GONE);
}
}
}
}
}
catch (Exception ex) {
}
return dpd;
}
このメソッドは、日付選択ダイアログを返します。したがって、ボタンのonClick
メソッドに次のコードを追加して、ダイアログを表示します。
createDialogWithoutDateField().show();
最近この問題に出くわしたので、この投稿の複数のソリューションとStackoverflowの同様の質問をテストしました。
残念ながら、特にAndroid 5+
最終的に、2つのNumberPickerを埋め込む単純なDialogFragmentを実装することになりました。これは、3.0以降のすべてのバージョンと互換性があります。
コードは次のとおりです。
public class MonthYearPickerDialog extends DialogFragment {
private static final int MAX_YEAR = 2099;
private DatePickerDialog.OnDateSetListener listener;
public void setListener(DatePickerDialog.OnDateSetListener listener) {
this.listener = listener;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// Get the layout inflater
LayoutInflater inflater = getActivity().getLayoutInflater();
Calendar cal = Calendar.getInstance();
View dialog = inflater.inflate(R.layout.date_picker_dialog, null);
final NumberPicker monthPicker = (NumberPicker) dialog.findViewById(R.id.picker_month);
final NumberPicker yearPicker = (NumberPicker) dialog.findViewById(R.id.picker_year);
monthPicker.setMinValue(0);
monthPicker.setMaxValue(11);
monthPicker.setValue(cal.get(Calendar.MONTH));
int year = cal.get(Calendar.YEAR);
yearPicker.setMinValue(year);
yearPicker.setMaxValue(MAX_YEAR);
yearPicker.setValue(year);
builder.setView(dialog)
// Add action buttons
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
listener.onDateSet(null, yearPicker.getValue(), monthPicker.getValue(), 0);
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MonthYearPickerDialog.this.getDialog().cancel();
}
});
return builder.create();
}
}
そしてレイアウト
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:orientation="vertical">
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:orientation="horizontal">
<NumberPicker
Android:id="@+id/picker_month"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginEnd="20dp"
Android:layout_marginRight="20dp">
</NumberPicker>
<NumberPicker
Android:id="@+id/picker_year"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content">
</NumberPicker>
</LinearLayout>
</LinearLayout>
レイアウトを表示するには:
MonthYearPickerDialog pd = new MonthYearPickerDialog();
pd.setListener(this);
pd.show(getFragmentManager(), "MonthYearPickerDialog");
Reflectionを使用してこのようなことを行うことはお勧めしません。
より簡単できれいな方法があります:
_((ViewGroup) datePickerDialog.getDatePicker()).findViewById(Resources.getSystem().getIdentifier("day", "id", "Android")).setVisibility(View.GONE);
_
DatePickerDialog
の.getDatePicker()
メソッドは_API LEVEL >= 11
_で動作することに注意してください。
さらに、API LEVEL> = 21では機能しません。
Stephan Klein Answerの詳細フォーム。
年オプションにする必要があるため。そして、私は2月28日のような日付も処理し、うるう年も処理しました。
MonthYearPickerDialog
public class MonthYearPickerDialog extends DialogFragment {
private DatePickerDialog.OnDateSetListener listener;
private int daysOfMonth = 31;
private NumberPicker monthPicker;
private NumberPicker yearPicker;
private NumberPicker dayPicker;
private Calendar cal = Calendar.getInstance();
public static final String MONTH_KEY = "monthValue";
public static final String DAY_KEY = "dayValue";
public static final String YEAR_KEY = "yearValue";
int monthVal = -1 , dayVal = -1 , yearVal =-1 ;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getArguments();
if(extras != null){
monthVal = extras.getInt(MONTH_KEY , -1);
dayVal = extras.getInt(DAY_KEY , -1);
yearVal = extras.getInt(YEAR_KEY , -1);
}
}
public static MonthYearPickerDialog newInstance(int monthIndex , int daysIndex , int yearIndex) {
MonthYearPickerDialog f = new MonthYearPickerDialog();
// Supply num input as an argument.
Bundle args = new Bundle();
args.putInt(MONTH_KEY, monthIndex);
args.putInt(DAY_KEY, daysIndex);
args.putInt(YEAR_KEY, yearIndex);
f.setArguments(args);
return f;
}
public void setListener(DatePickerDialog.OnDateSetListener listener) {
this.listener = listener;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
//getDialog().setTitle("Add Birthday");
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// Get the layout inflater
LayoutInflater inflater = getActivity().getLayoutInflater();
View dialog = inflater.inflate(R.layout.month_year_picker, null);
monthPicker = (NumberPicker) dialog.findViewById(R.id.picker_month);
yearPicker = (NumberPicker) dialog.findViewById(R.id.picker_year);
dayPicker = (NumberPicker) dialog.findViewById(R.id.picker_day);
monthPicker.setMinValue(1);
monthPicker.setMaxValue(12);
if(monthVal != -1)// && (monthVal > 0 && monthVal < 13))
monthPicker.setValue(monthVal);
else
monthPicker.setValue(cal.get(Calendar.MONTH) + 1);
monthPicker.setDisplayedValues(new String[]{"Jan","Feb","Mar","Apr","May","June","July",
"Aug","Sep","Oct","Nov","Dec"});
dayPicker.setMinValue(1);
dayPicker.setMaxValue(daysOfMonth);
if(dayVal != -1)
dayPicker.setValue(dayVal);
else
dayPicker.setValue(cal.get(Calendar.DAY_OF_MONTH));
monthPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
switch (newVal){
case 1:case 3:case 5:
case 7:case 8:case 10:
case 12:
daysOfMonth = 31;
dayPicker.setMaxValue(daysOfMonth);
break;
case 2:
daysOfMonth = 28;
dayPicker.setMaxValue(daysOfMonth);
break;
case 4:case 6:
case 9:case 11:
daysOfMonth = 30;
dayPicker.setMaxValue(daysOfMonth);
break;
}
}
});
int maxYear = cal.get(Calendar.YEAR);//2016
final int minYear = 1916;//1997;
int arraySize = maxYear - minYear;
String[] tempArray = new String[arraySize];
tempArray[0] = "---";
int tempYear = minYear+1;
for(int i=0 ; i < arraySize; i++){
if(i != 0){
tempArray[i] = " " + tempYear + "";
}
tempYear++;
}
Log.i("", "onCreateDialog: " + tempArray.length);
yearPicker.setMinValue(minYear+1);
yearPicker.setMaxValue(maxYear);
yearPicker.setDisplayedValues(tempArray);
if(yearVal != -1)
yearPicker.setValue(yearVal);
else
yearPicker.setValue(tempYear -1);
yearPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
try {
if(isLeapYear(picker.getValue())){
daysOfMonth = 29;
dayPicker.setMaxValue(daysOfMonth);
}
}catch (Exception e){
e.printStackTrace();
}
}
});
builder.setView(dialog)
// Add action buttons
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
int year = yearPicker.getValue();
if(year == (minYear+1)){
year = 1904;
}
listener.onDateSet(null, year, monthPicker.getValue(), dayPicker.getValue());
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MonthYearPickerDialog.this.getDialog().cancel();
}
});
return builder.create();
}
public static boolean isLeapYear(int year) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
return cal.getActualMaximum(Calendar.DAY_OF_YEAR) > 365;
}
}
そして私はそれを
Calendar calendar = Calendar.getInstance();
if(etBirthday.getText().length()> 0 ){
if(checkIsYearAvailable(etBirthday.getText().toString().trim()))
calendar = DateTimeOp.getCalendarFromFormat(etBirthday.getText().toString().trim(), Constants.dateFormat21);
else
calendar = DateTimeOp.getCalendarFromFormat(etBirthday.getText().toString().trim() + ", 1917",Constants.dateFormat21);
}
MonthYearPickerDialog pd = MonthYearPickerDialog.newInstance(calendar.get(Calendar.MONTH) + 1,
calendar.get(Calendar.DAY_OF_MONTH),calendar.get(Calendar.YEAR));
pd.setListener(new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) {
String formatedDate = "";
if(selectedYear == 1904)
{
String currentDateFormat = selectedMonth + "/" + selectedDay;// + "/" + selectedYear; //"MM/dd/yyyy"
formatedDate = DateTimeOp.oneFormatToAnother(currentDateFormat, Constants.dateFormat20, Constants.dateFormat24);
}
else{
String currentDateFormat = selectedMonth + "/" + selectedDay + "/" + selectedYear; //"MM/dd/yyyy"
formatedDate = DateTimeOp.oneFormatToAnother(currentDateFormat, Constants.dateFormat0, Constants.dateFormat21);
}
etBirthday.setText(formatedDate);
}
});
pd.show(getFragmentManager(), "MonthYearPickerDialog");
month_year_picker.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical">
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:orientation="horizontal">
<NumberPicker
Android:id="@+id/picker_month"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginEnd="20dp"
Android:layout_marginRight="20dp" />
<NumberPicker
Android:id="@+id/picker_day"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginEnd="20dp"
Android:layout_marginRight="20dp" />
<NumberPicker
Android:id="@+id/picker_year"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
「Xar E Ahmer」による回答は、要件に従って非常に簡単に理解できます。私は自分の要件に従って次の変更を加えて同じものを使用しました。
MonthYearPickerDialog.kt
package com.example.*******
import Android.app.AlertDialog
import Android.app.DatePickerDialog
import Android.app.Dialog
import Android.content.Context
import Android.content.DialogInterface
import Android.os.Bundle
import Android.util.Log
import Android.view.LayoutInflater
import Android.view.View
import Android.widget.CheckBox
import Android.widget.CompoundButton
import Android.widget.NumberPicker
import Android.app.DialogFragment
import Java.util.Calendar
class MonthYearPickerDialog : DialogFragment() {
private var listener: DatePickerDialog.OnDateSetListener? = null
private var daysOfMonth = 31
private var monthPicker: NumberPicker? = null
private var yearPicker: NumberPicker? = null
private var dayPicker: NumberPicker? = null
private var isEveryYearcheckBox: CheckBox? = null
private val cal = Calendar.getInstance()
internal var monthVal = -1
internal var dayVal = -1
internal var yearVal = -1
internal var maxYearVal = -1
internal var minYearVal = -1
override fun onAttach(context: Context) {
super.onAttach(context)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val extras = arguments
if (extras != null) {
monthVal = extras.getInt(MONTH_KEY, -1)
dayVal = extras.getInt(DAY_KEY, -1)
yearVal = extras.getInt(YEAR_KEY, -1)
maxYearVal = extras.getInt(MAX_YEAR_KEY, -1)
minYearVal = extras.getInt(MIN_YEAR_KEY, -1)
}
maxYearVal = if (maxYearVal == -1) 2025 else maxYearVal
minYearVal = if (minYearVal == -1) 1925 else minYearVal
if (minYearVal > maxYearVal) {
val tempVal = maxYearVal
maxYearVal = minYearVal
minYearVal = tempVal
}
}
fun setListener(listener: DatePickerDialog.OnDateSetListener) {
this.listener = listener
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val builder = AlertDialog.Builder(activity)
// Get the layout inflater
val inflater = activity.layoutInflater
val dialog = inflater.inflate(R.layout.month_year_picker, null)
monthPicker = dialog.findViewById<View>(R.id.datepicker_month) as NumberPicker
yearPicker = dialog.findViewById<View>(R.id.datepicker_year) as NumberPicker
dayPicker = dialog.findViewById<View>(R.id.datepicker_day) as NumberPicker
isEveryYearcheckBox = dialog.findViewById<View>(R.id.datepicker_isyearcheckBox) as CheckBox
isEveryYearcheckBox!!.setOnCheckedChangeListener { compoundButton, b ->
if (b) {
yearPicker!!.isEnabled = false
yearPicker!!.value = minYearVal - 1
} else {
yearPicker!!.isEnabled = true
if (yearVal != -1 && yearVal != 1904)
yearPicker!!.value = yearVal
else {
yearPicker!!.value = cal.get(Calendar.YEAR)
}
}
if (monthPicker!!.value == 2) {
daysOfMonth = 28
if (isLeapYear(yearPicker!!.value)) {
daysOfMonth = 29
}
dayPicker!!.maxValue = daysOfMonth
}
}
monthPicker!!.minValue = 1
monthPicker!!.maxValue = 12
if (monthVal != -1)
monthPicker!!.value = monthVal
else
monthPicker!!.value = cal.get(Calendar.MONTH) + 1
monthPicker!!.displayedValues = arrayOf("Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec")
dayPicker!!.minValue = 1
dayPicker!!.maxValue = daysOfMonth
if (dayVal != -1)
dayPicker!!.value = dayVal
else
dayPicker!!.value = cal.get(Calendar.DAY_OF_MONTH)
monthPicker!!.setOnValueChangedListener { picker, oldVal, newVal ->
when (newVal) {
1, 3, 5, 7, 8, 10, 12 -> {
daysOfMonth = 31
dayPicker!!.maxValue = daysOfMonth
}
2 -> {
daysOfMonth = 28
if (isLeapYear(yearPicker!!.value)) {
daysOfMonth = 29
}
dayPicker!!.maxValue = daysOfMonth
}
4, 6, 9, 11 -> {
daysOfMonth = 30
dayPicker!!.maxValue = daysOfMonth
}
}
}
val maxYear = maxYearVal
val minYear = minYearVal
val arraySize = maxYear - minYear + 2
val tempArray = arrayOfNulls<String>(arraySize)
tempArray[0] = "---"
var tempYear = minYear - 1
for (i in 0 until arraySize) {
if (i != 0) {
tempArray[i] = " $tempYear"
}
tempYear++
}
Log.i("", "onCreateDialog: " + tempArray.size)
yearPicker!!.minValue = minYear - 1
yearPicker!!.maxValue = maxYear
yearPicker!!.displayedValues = tempArray
if (yearVal != -1 && yearVal != 1904) {
yearPicker!!.value = yearVal
} else {
isEveryYearcheckBox!!.isChecked = false
yearPicker!!.isEnabled = false
yearPicker!!.value = minYear - 1
}
if (monthPicker!!.value == 2) {
daysOfMonth = 28
if (isLeapYear(yearPicker!!.value)) {
daysOfMonth = 29
}
dayPicker!!.maxValue = daysOfMonth
}
yearPicker!!.setOnValueChangedListener { picker, oldVal, newVal ->
try {
daysOfMonth = 28
if (isLeapYear(picker.value)) {
daysOfMonth = 29
}
dayPicker!!.maxValue = daysOfMonth
} catch (e: Exception) {
e.printStackTrace()
}
}
builder.setView(dialog)
// Add action buttons
.setPositiveButton(R.string.ok) { dialog, id ->
var year = yearPicker!!.value
if (year == minYear - 1) {
year = 1904
}
listener!!.onDateSet(null, year, monthPicker!!.value, dayPicker!!.value)
}
.setNegativeButton(R.string.cancel) { dialog, id -> [email protected]() }
return builder.create()
}
companion object {
val MONTH_KEY = "monthValue"
val DAY_KEY = "dayValue"
val YEAR_KEY = "yearValue"
val MAX_YEAR_KEY = "maxyearValue"
val MIN_YEAR_KEY = "minyearValue"
fun newInstance(monthIndex: Int, daysIndex: Int, yearIndex: Int, maxYearIndex: Int, minYearIndex: Int): MonthYearPickerDialog {
val f = MonthYearPickerDialog()
// Supply num input as an argument.
val args = Bundle()
args.putInt(MONTH_KEY, monthIndex)
args.putInt(DAY_KEY, daysIndex)
args.putInt(YEAR_KEY, yearIndex)
args.putInt(MAX_YEAR_KEY, maxYearIndex)
args.putInt(MIN_YEAR_KEY, minYearIndex)
f.arguments = args
return f
}
fun isLeapYear(year: Int): Boolean {
val cal = Calendar.getInstance()
cal.set(Calendar.YEAR, year)
return cal.getActualMaximum(Calendar.DAY_OF_YEAR) > 365
}
}
}
month_year_picker.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical">
<CheckBox
Android:id="@+id/datepicker_isyearcheckBox"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:checked="false"
Android:layout_gravity="center"
Android:paddingTop="20dp"
Android:paddingBottom="20dp"
Android:text="Every year" />
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:orientation="horizontal">
<NumberPicker
Android:id="@+id/datepicker_month"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginEnd="20dp"
Android:layout_marginRight="20dp" />
<NumberPicker
Android:id="@+id/datepicker_day"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginEnd="20dp"
Android:layout_marginRight="20dp" />
<NumberPicker
Android:id="@+id/datepicker_year"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
Javaの異なるテストケースでの使用例
Calendar calendar = Calendar.getInstance();
// current date
MonthYearPickerDialog pd = MonthYearPickerDialog.Companion.newInstance(calendar.get(Calendar.MONTH) + 1,
calendar.get(Calendar.DAY_OF_MONTH), calendar.get(Calendar.YEAR), -1, -1);
// SSTODO for testing
// no year
//MonthYearPickerDialog pd = MonthYearPickerDialog.newInstance(calendar.get(Calendar.MONTH) + 1,
// calendar.get(Calendar.DAY_OF_MONTH), -1, -1, -1);
// minimum year 2020
//MonthYearPickerDialog pd = MonthYearPickerDialog.newInstance(calendar.get(Calendar.MONTH) + 1,
// calendar.get(Calendar.DAY_OF_MONTH), calendar.get(Calendar.YEAR), -1, 2020);
// maximum year 2018
//MonthYearPickerDialog pd = MonthYearPickerDialog.newInstance(calendar.get(Calendar.MONTH) + 1,
// calendar.get(Calendar.DAY_OF_MONTH), calendar.get(Calendar.YEAR), 2018, -1);
// maximum year 2019, minimum year 2019
//MonthYearPickerDialog pd = MonthYearPickerDialog.newInstance(calendar.get(Calendar.MONTH) + 1,
// calendar.get(Calendar.DAY_OF_MONTH), calendar.get(Calendar.YEAR), 2019, 2019);
// maximum year 100, minimum year 5000
//MonthYearPickerDialog pd = MonthYearPickerDialog.newInstance(calendar.get(Calendar.MONTH) + 1,
// calendar.get(Calendar.DAY_OF_MONTH), calendar.get(Calendar.YEAR), 100, 5000);
// maximum year 100, minimum year 5000, year 99
//MonthYearPickerDialog pd = MonthYearPickerDialog.newInstance(calendar.get(Calendar.MONTH) + 1,
// calendar.get(Calendar.DAY_OF_MONTH), 99, 100, 5000);
pd.setListener(new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) {
String formatedDate = "";
String currentDateFormat = "";
if(selectedYear == 1904) // no year
{
currentDateFormat = selectedMonth + "/" + selectedDay; //"MM/dd"
}
else {
currentDateFormat = selectedMonth + "/" + selectedDay + "/" + selectedYear; //"MM/dd/yyyy"
}
Toast.makeText(MainActivityTestOne.this, "Selected Date ( MM/dd or. MM/dd/yyyy ) : " + currentDateFormat, Toast.LENGTH_LONG).show();
}
});
pd.show(getFragmentManager(), STRING_DATE_PICKER);
これは私のためにうまくいきます:
DatePickerDialog monthDatePickerDialog = new DatePickerDialog(activity,
AlertDialog.THEME_HOLO_LIGHT, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
monthTextView.setText(year + "/" + (month + 1));
}
}, yearNow, monthNow, dayNow){
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getDatePicker().findViewById(getResources().getIdentifier("day","id","Android")).setVisibility(View.GONE);
}
};
monthDatePickerDialog.setTitle("select_month");
monthDatePickerDialog.show();
これは古い質問ですが、今では「BetterPickers」を使用できます。
https://github.com/code-troopers/Android-betterpickers
ExpirationPickerを使用します。
これが、グーグルを広範囲に検索した他の失われた魂のためにそれを解決することを願っています。