DatePicker 只选择年月
时间: 2023-07-21 22:59:53 浏览: 48
如果您只想让用户选择年份和月份,而不包括具体的日期,您可以使用DatePickerDialog并设置它的DatePickerMode为Spinner。以下是一个示例代码:
```java
import android.app.DatePickerDialog;
import android.content.Context;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener {
private Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
showDatePickerDialog();
}
private void showDatePickerDialog() {
DatePickerDialog datePickerDialog = new DatePickerDialog(context, this, 2022, 0, 0);
datePickerDialog.getDatePicker().setCalendarViewShown(false); // 隐藏日历视图
datePickerDialog.getDatePicker().setSpinnersShown(true); // 显示下拉选择框
datePickerDialog.show();
}
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
Toast.makeText(context, "选择的年份:" + year + ",月份:" + (month + 1), Toast.LENGTH_SHORT).show();
}
}
```
在上述代码中,我们创建了一个DatePickerDialog并设置了初始日期、日期选择模式和监听器。通过将`setCalendarViewShown(false)`设置为隐藏日历视图,将`setSpinnersShown(true)`设置为显示下拉选择框,我们只显示了年份和月份的选择框。当用户选择年份和月份后,`onDateSet`方法将被调用,并显示所选的年份和月份。
请注意,您需要将代码中的`R.layout.activity_main`替换为您的布局文件。同时,您可以根据需要自定义初始日期和其他DatePickerDialog的属性。
这样,您就可以实现一个只选择年份和月份的DatePicker。用户将只能选择年份和月份,并且您可以在`onDateSet`方法中处理所选的年份和月份。