public class AlertDialogActivity extends Activity {
private static final int ALERTTAG = 0, PROGRESSTAG = 1;
protected static final String TAG = "AlertDialogActivity";
private Button mShutdownButton = null;
private DialogFragment mDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mShutdownButton = (Button) findViewById(R.id.shutdownButton);
mShutdownButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDialogFragment(ALERTTAG);//点击就出现 DialogFragment
}
});
}
//onCreate 用到的方法
void showDialogFragment(int dialogID) {
switch (dialogID) {
case ALERTTAG:
mDialog = AlertDialogFragment.newInstance();//返回一个 alert dialog fragment
mDialog.show(getFragmentManager(), "Alert");//show方法调用之后,会调用 onCreateDialog方法
break;
case PROGRESSTAG:
mDialog = ProgressDialogFragment.newInstance();
mDialog.show(getFragmentManager(), "Shutdown");
break;
}
}
protected void continueShutdown(boolean shouldContinue) {
if (shouldContinue) {
mShutdownButton.setEnabled(false);
showDialogFragment(PROGRESSTAG);
finishShutdown();
} else {
mDialog.dismiss();
}
}
private void finishShutdown() {
new Thread(new Runnable() {
@Override
public void run() {
try {
// Pretend to do something before
// shutting down
Thread.sleep(5000);
} catch (InterruptedException e) {
Log.i(TAG, e.toString());
} finally {
finish();
}
}
}).start();
}
//第一个对话框
public static class AlertDialogFragment extends DialogFragment {
public static AlertDialogFragment newInstance() {
return new AlertDialogFragment();
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(getActivity())
.setMessage("Do you really want to exit?")
.setCancelable(false)
.setNegativeButton("no", //这个方法是放置 否 按键
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
((AlertDialogActivity) getActivity())
.continueShutdown(false);
}
})
.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(
final DialogInterface dialog, int id) {
((AlertDialogActivity) getActivity())
.continueShutdown(true);
}
}).create();
}
}
//第二个对话框
public static class ProgressDialogFragment extends DialogFragment {
public static ProgressDialogFragment newInstance() {
return new ProgressDialogFragment();
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final ProgressDialog dialog = new ProgressDialog(getActivity());
dialog.setMessage("Activity Shutting Down.");
dialog.setIndeterminate(true);
return dialog;
}
}
}
coursera-android-week4-4
最新推荐文章于 2021-05-26 05:32:32 发布