单击Spinner弹出日期选择器
时间: 2023-07-06 16:06:39 浏览: 45
你可以使用DatePickerDialog类来实现Spinner弹出日期选择器的功能。以下是一个示例代码:
```
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
private Spinner spinner;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = findViewById(R.id.spinner);
textView = findViewById(R.id.text_view);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.planets_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (position == 0) { // 如果选中第一项
showDatePickerDialog(); // 弹出日期选择器
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
private void showDatePickerDialog() {
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePickerDialog = new DatePickerDialog(this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
// 显示选择的日期
textView.setText(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);
}
}, year, month, day);
datePickerDialog.show();
}
}
```
上述代码中,我们实现了AdapterView.OnItemSelectedListener接口,并在onItemSelected方法中判断是否选中了第一项,如果是,则调用showDatePickerDialog方法弹出日期选择器。
在showDatePickerDialog方法中,我们使用Calendar类获取当前日期,并使用DatePickerDialog类创建日期选择器。在选择日期后,我们在onDateSet回调方法中将选择的日期显示在TextView中。