Last active
December 15, 2015 17:39
-
-
Save daichan4649/5297739 to your computer and use it in GitHub Desktop.
ProgressDialog (cancel pattern)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class ProgressDialogFragment extends DialogFragmentBase { | |
public static ProgressDialogFragment newInstance() { | |
ProgressDialogFragment fragment = new ProgressDialogFragment(); | |
// キャンセル無効(これやると、BACKキー自体無効になる) | |
// fragment.setCancelable(true); | |
return fragment; | |
} | |
@Override | |
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { | |
cancel = (Button) view.findViewById(R.id.cancel); | |
// キャンセル押下時 | |
cancel.setOnClickListener(new OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
// キャンセル要求 | |
requestCancel(); | |
} | |
}); | |
// BACKキー押下時 | |
getDialog().setOnKeyListener(new OnKeyListener() { | |
@Override | |
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { | |
if (keyCode == KeyEvent.KEYCODE_BACK) { | |
// キャンセル要求 | |
requestCancel(); | |
// 後続処理不可(有効にするとダイアログ閉じられる) | |
return true; | |
} | |
return false; | |
} | |
}); | |
return super.onCreateView(inflater, container, savedInstanceState); | |
} | |
private void requestCancel() { | |
// キャンセルボタン押下不可 | |
cancel.setEnabled(false); | |
// キャンセル要求 | |
// AsyncTask#cancel 実行とか | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
以下の状況を想定
ポイント