对话框弃用问题

时间:2016-01-07 18:11:31

标签: java android android-studio deprecated

我正在研究几年前有人做过的Android应用程序(2012年我想),我正在努力更新它以便它可以再次运行。我已经纠正了我遇到的每一个弃用案例,除了一个令我疯狂的案例。

其中一个Activity正在使用对话框,但它们都已弃用。

  • onCreateDialog
  • onPrepareDialog
  • removeDialog
  • 的ShowDialog

以下是使用这些方法的类的一部分:

/**
 * {@inheritDoc}
 */
@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case TIME_DIALOG_ID:
        if (hour == 0) {
            hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
            minute = Calendar.getInstance().get(Calendar.MINUTE);
        }

        mTPD = new TimePickerDialog(this, mTimeSetListener, hour, minute, true);
        return mTPD;
    }
    return null;
}

/**
 * {@inheritDoc}
 */
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
    super.onPrepareDialog(id, dialog); // call super

    switch (id) {
    case DATE_DIALOG_ID:
        ((DatePickerDialog) dialog).setOnDismissListener(new OnDismissListener() {
            @Override
            public void onDismiss(DialogInterface dialog) {
                removeDialog(DATE_DIALOG_ID);
            }
        });
        break;
    case TIME_DIALOG_ID:
        ((TimePickerDialog) dialog).setOnDismissListener(new OnDismissListener() {
            @Override
            public void onDismiss(DialogInterface dialog) {
                removeDialog(TIME_DIALOG_ID);
            }
        });
        break;
    }
}

并呼吁

showDialog(TIME_DIALOG_ID);
再远一点。我创建了一个DlgsFragment类:

public class DlgsFragment extends DialogFragment{
int mNum;

static DlgsFragment newInstance(int num){
    DlgsFragment f = new DlgsFragment();

    Bundle args = new Bundle();
    args.putInt("num", num);
    f.setArguments(args);

    return f;
}
@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    mNum = getArguments().getInt("num");
}
}

但是,由于我的第一堂课已经扩展了其他内容,我不知道该怎么做..请帮助我!

0 个答案:

没有答案