GoToPageDialog.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.poqop.document;
  2. import android.app.Dialog;
  3. import android.content.Context;
  4. import android.view.KeyEvent;
  5. import android.view.View;
  6. import android.view.inputmethod.EditorInfo;
  7. import android.widget.Button;
  8. import android.widget.EditText;
  9. import android.widget.TextView;
  10. import android.widget.Toast;
  11. import com.poqop.R;
  12. public class GoToPageDialog extends Dialog
  13. {
  14. private final DocumentView documentView;
  15. private final DecodeService decodeService;
  16. public GoToPageDialog(final Context context, final DocumentView documentView, final DecodeService decodeService)
  17. {
  18. super(context);
  19. this.documentView = documentView;
  20. this.decodeService = decodeService;
  21. setTitle("跳转至:");
  22. setContentView(R.layout.gotopage);
  23. final Button button = (Button) findViewById(R.id.goToButton);
  24. button.setOnClickListener(new View.OnClickListener()
  25. {
  26. public void onClick(View view)
  27. {
  28. goToPageAndDismiss();
  29. }
  30. });
  31. final EditText editText = (EditText) findViewById(R.id.pageNumberTextEdit);
  32. editText.setOnEditorActionListener(new TextView.OnEditorActionListener()
  33. {
  34. public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent)
  35. {
  36. if (actionId == EditorInfo.IME_NULL || actionId == EditorInfo.IME_ACTION_DONE)
  37. {
  38. goToPageAndDismiss();
  39. return true;
  40. }
  41. return false;
  42. }
  43. });
  44. }
  45. private void goToPageAndDismiss()
  46. {
  47. navigateToPage();
  48. dismiss();
  49. }
  50. /*
  51. * 跳转页面,不存在时的提示
  52. */
  53. private void navigateToPage()
  54. {
  55. final EditText text = (EditText) findViewById(R.id.pageNumberTextEdit);
  56. final int pageNumber = Integer.parseInt(text.getText().toString());
  57. if (pageNumber < 1 || pageNumber > decodeService.getPageCount())
  58. {
  59. Toast.makeText(getContext(), "该文档只有: 1-" + decodeService.getPageCount(), 2000).show();
  60. return;
  61. }
  62. documentView.goToPage(pageNumber-1);
  63. }
  64. }