Android-альтернатива для подавленного шоу Dilaog
Я использовал Show Dialog для создания Date Picker в Android, я был в состоянии сделать это с помощью. Я хочу, чтобы на buttonClick появлялся инструмент выбора даты, но он был сделан через showDialog, который устарел, я использовал..
Main Activity
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final Calendar c = Calendar.getInstance();
pYear= c.get(Calendar.YEAR);
pMonth = c.get(Calendar.MONTH);
pDay = c.get(Calendar.DAY_OF_MONTH);
setContentView(R.layout.main);
addListenerOnButton();
}
public void addListenerOnButton() {
btnChangeDate = (Button) findViewById(R.id.btnChangeDate);
btnChangeDate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDialog(DATE_DIALOG_ID);
/*MainActivity.dialogMaps.put(++MainActivity.dialogIdCounter,
new DatePickerDialog((Activity) MainActivity.this,
mDateSetListener, mYear, mMonth, mDay));*/
/*((Activity) MainActivity.this)
.showDialog(MainActivity.dialogIdCounter);*/
}
});
}
@SuppressLint("NewApi")
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
DatePickerDialog dpDialog = new DatePickerDialog(this, mDateSetListener, pYear, pMonth, pDay);
DatePicker datePicker = dpDialog.getDatePicker();
Calendar calendar = Calendar.getInstance();//get the current day
datePicker.setMaxDate(calendar.getTimeInMillis());//set the current day as the max date
return dpDialog;
}
return null;
}
protected void onPrepareDialog(int id, Dialog dialog) {
switch (id) {
case DATE_DIALOG_ID:
((DatePickerDialog) dialog).updateDate(pYear, pMonth-1, pDay);
break;
}
}
private void updateDisplay() {
btnChangeDate = (Button) findViewById(R.id.btnChangeDate);
btnChangeDate.setText(new StringBuilder().append(pDay).append("/")
.append(pMonth + 1).append("/").append(pYear));
}
private DatePickerDialog.OnDateSetListener mDateSetListener =
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
pYear = year;
pMonth = monthOfYear;
pDay = dayOfMonth;
updateDisplay();
}
};
Я узнал, что showDialog устарел для API уровня 13. Я хочу добиться того же с помощью фрагмента диалога, но не понимаю, как начать, любая помощь будет высоко оценена
1 ответ
В чем причина?
http://developer.android.com/reference/android/app/Activity.html
Android DialogFragment против Диалога
Как это решить?
Вместо этого используйте новый класс DialogFragment с FragmentManager; это также доступно на старых платформах через пакет совместимости Android.
http://android-developers.blogspot.in/2012/05/using-dialogfragments.html