Sunday, June 24, 2018

Android 0621 assignment

1.



參考連結:http://pulse7.net/android/login-dialog-box-android/
MainActivity.java
  1. <span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">mycs</span><span class="pun">.</span><span class="pln">alertdialoglogin</span><span class="pun">;</span>
  2. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">annotation</span><span class="pun">.</span><span class="typ">SuppressLint</span><span class="pun">;</span>
  3. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">AlertDialog</span><span class="pun">;</span>
  4. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">DialogInterface</span><span class="pun">;</span>
  5. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span>
  6. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">support</span><span class="pun">.</span><span class="pln">v7</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">AppCompatActivity</span><span class="pun">;</span>
  7. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">text</span><span class="pun">.</span><span class="pln">method</span><span class="pun">.</span><span class="typ">PasswordTransformationMethod</span><span class="pun">;</span>
  8. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">LayoutInflater</span><span class="pun">;</span>
  9. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">;</span>
  10. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">CheckBox</span><span class="pun">;</span>
  11. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">CompoundButton</span><span class="pun">;</span>
  12. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">EditText</span><span class="pun">;</span>
  13. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">Toast</span><span class="pun">;</span>
  14. <span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">AppCompatActivity</span><span class="pln"> </span><span class="pun">{</span>
  15. <span class="pln"> </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> btnClicked </span><span class="pun">(</span><span class="typ">View</span><span class="pln"> view</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  16. <span class="pln"> </span><span class="typ">LayoutInflater</span><span class="pln"> inflater </span><span class="pun">=</span><span class="pln"> getLayoutInflater</span><span class="pun">();</span>
  17. <span class="pln"> </span><span class="lit">@SuppressLint</span><span class="pun">(</span><span class="str">"InflateParams"</span><span class="pun">)</span><span class="pln"> </span><span class="typ">View</span><span class="pln"> alertLayout </span><span class="pun">=</span><span class="pln"> inflater</span><span class="pun">.</span><span class="pln">inflate</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">login_dialog</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">);</span>
  18. <span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="typ">EditText</span><span class="pln"> etUsername </span><span class="pun">=</span><span class="pln"> alertLayout</span><span class="pun">.</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">textUsername</span><span class="pun">);</span>
  19. <span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="typ">EditText</span><span class="pln"> etPassword </span><span class="pun">=</span><span class="pln"> alertLayout</span><span class="pun">.</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">textPassword</span><span class="pun">);</span>
  20. <span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="typ">CheckBox</span><span class="pln"> cbToggle </span><span class="pun">=</span><span class="pln"> alertLayout</span><span class="pun">.</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">cb_show_pass</span><span class="pun">);</span>
  21. <span class="pln"> cbToggle</span><span class="pun">.</span><span class="pln">setOnCheckedChangeListener</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">CompoundButton</span><span class="pun">.</span><span class="typ">OnCheckedChangeListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span>
  22. <span class="pln"> </span><span class="lit">@Override</span>
  23. <span class="pln"> </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCheckedChanged</span><span class="pun">(</span><span class="typ">CompoundButton</span><span class="pln"> compoundButton</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> isChecked</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  24. <span class="pln"> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">isChecked</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  25. <span class="pln"> etPassword</span><span class="pun">.</span><span class="pln">setTransformationMethod</span><span class="pun">(</span><span class="typ">PasswordTransformationMethod</span><span class="pun">.</span><span class="pln">getInstance</span><span class="pun">());</span>
  26. <span class="pln"> </span><span class="pun">}</span><span class="pln"> </span><span class="kwd">else</span><span class="pln"> </span><span class="pun">{</span>
  27. <span class="pln"> etPassword</span><span class="pun">.</span><span class="pln">setTransformationMethod</span><span class="pun">(</span><span class="kwd">null</span><span class="pun">);</span>
  28. <span class="pln"> </span><span class="pun">}</span>
  29. <span class="pln"> </span><span class="pun">}</span>
  30. <span class="pln"> </span><span class="pun">});</span>
  31. <span class="pln"> </span><span class="typ">AlertDialog</span><span class="pun">.</span><span class="typ">Builder</span><span class="pln"> login </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">AlertDialog</span><span class="pun">.</span><span class="typ">Builder</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">);</span>
  32. <span class="pln"> login</span><span class="pun">.</span><span class="pln">setTitle</span><span class="pun">(</span><span class="str">"Login"</span><span class="pun">);</span>
  33. <span class="pln"> login</span><span class="pun">.</span><span class="pln">setView</span><span class="pun">(</span><span class="pln">alertLayout</span><span class="pun">);</span>
  34. <span class="pln"> login</span><span class="pun">.</span><span class="pln">setCancelable</span><span class="pun">(</span><span class="kwd">false</span><span class="pun">);</span>
  35. <span class="pln"> login</span><span class="pun">.</span><span class="pln">setNegativeButton</span><span class="pun">(</span><span class="str">"Cancel"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">DialogInterface</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span>
  36. <span class="pln"> </span><span class="lit">@Override</span>
  37. <span class="pln"> </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onClick</span><span class="pun">(</span><span class="typ">DialogInterface</span><span class="pln"> dialogInterface</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> i</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  38. <span class="pln"> </span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">makeText</span><span class="pun">(</span><span class="pln">getBaseContext</span><span class="pun">(),</span><span class="pln"> </span><span class="str">"Cancel clicked."</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">LENGTH_SHORT</span><span class="pun">).</span><span class="pln">show</span><span class="pun">();</span>
  39. <span class="pln"> </span><span class="pun">}</span>
  40. <span class="pln"> </span><span class="pun">});</span>
  41. <span class="pln"> login</span><span class="pun">.</span><span class="pln">setPositiveButton</span><span class="pun">(</span><span class="str">"Login"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">DialogInterface</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span>
  42. <span class="pln"> </span><span class="lit">@Override</span>
  43. <span class="pln"> </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onClick</span><span class="pun">(</span><span class="typ">DialogInterface</span><span class="pln"> dialogInterface</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> i</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  44. <span class="pln"> </span><span class="typ">String</span><span class="pln"> user </span><span class="pun">=</span><span class="pln"> etUsername</span><span class="pun">.</span><span class="pln">getText</span><span class="pun">().</span><span class="pln">toString</span><span class="pun">();</span>
  45. <span class="pln"> </span><span class="typ">String</span><span class="pln"> </span><span class="kwd">pass</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> etPassword</span><span class="pun">.</span><span class="pln">getText</span><span class="pun">().</span><span class="pln">toString</span><span class="pun">();</span>
  46. <span class="pln"> </span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">makeText</span><span class="pun">(</span><span class="pln">getBaseContext</span><span class="pun">(),</span><span class="pln"> </span><span class="str">"User: "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> user </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Password: "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="kwd">pass</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Logged in."</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">LENGTH_LONG</span><span class="pun">).</span><span class="pln">show</span><span class="pun">();</span>
  47. <span class="pln"> </span><span class="pun">}</span>
  48. <span class="pln"> </span><span class="pun">});</span>
  49. <span class="pln"> </span><span class="typ">AlertDialog</span><span class="pln"> dialog </span><span class="pun">=</span><span class="pln"> login</span><span class="pun">.</span><span class="pln">create</span><span class="pun">();</span>
  50. <span class="pln"> dialog</span><span class="pun">.</span><span class="pln">show</span><span class="pun">();</span>
  51. <span class="pln"> </span><span class="pun">}</span>
  52. <span class="pln"> </span><span class="lit">@Override</span>
  53. <span class="pln"> </span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  54. <span class="pln"> </span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span>
  55. <span class="pln"> setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span>
  56. <span class="pln"> </span><span class="pun">}</span>
  57. <span class="pun">}</span>
  58.  

心得:學到如何實作顯示密碼欄位內容,覺得有用。

2.
參考連結︰https://www.android-examples.com/show-create-alertdialog-with-multiple-choices-in-android/
MainActivity.java
  1. <span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">mycs</span><span class="pun">.</span><span class="pln">multichoicedialog</span><span class="pun">;</span>
  2. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">DialogInterface</span><span class="pun">;</span>
  3. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">support</span><span class="pun">.</span><span class="pln">v7</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">AlertDialog</span><span class="pun">;</span>
  4. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">support</span><span class="pun">.</span><span class="pln">v7</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">AppCompatActivity</span><span class="pun">;</span>
  5. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span>
  6. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">;</span>
  7. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">Button</span><span class="pun">;</span>
  8. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">TextView</span><span class="pun">;</span>
  9. <span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="typ">Arrays</span><span class="pun">;</span>
  10. <span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="typ">List</span><span class="pun">;</span>
  11. <span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">AppCompatActivity</span><span class="pln"> </span><span class="pun">{</span>
  12. <span class="pln"> </span><span class="typ">Button</span><span class="pln"> button</span><span class="pun">;</span>
  13. <span class="pln"> </span><span class="typ">TextView</span><span class="pln"> textView</span><span class="pun">;</span>
  14. <span class="pln"> </span><span class="typ">AlertDialog</span><span class="pun">.</span><span class="typ">Builder</span><span class="pln"> alertDialogBuilder</span><span class="pun">;</span>
  15. <span class="pln"> </span><span class="typ">String</span><span class="pun">[]</span><span class="pln"> alertDialogItems </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">String</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">{</span>
  16. <span class="pln"> </span><span class="str">"美味蟹堡"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"義式香腸堡"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"蔬菜水果堡"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"香蕉潛艇堡"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"香烤雞腿堡"</span>
  17. <span class="pln"> </span><span class="pun">};</span>
  18. <span class="pln"> </span><span class="typ">List</span><span class="str">&lt;string&gt;</span><span class="pln"> itemsIntoList</span><span class="pun">;</span>
  19. <span class="pln"> </span><span class="kwd">boolean</span><span class="pun">[]</span><span class="pln"> selected </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">{</span>
  20. <span class="pln"> </span><span class="kwd">false</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">false</span>
  21. <span class="pln"> </span><span class="pun">};</span>
  22. <span class="pln"> </span><span class="lit">@Override</span>
  23. <span class="pln"> </span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  24. <span class="pln"> </span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span>
  25. <span class="pln"> setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span>
  26. <span class="pln"> button </span><span class="pun">=</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">button</span><span class="pun">);</span>
  27. <span class="pln"> textView </span><span class="pun">=</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">textView</span><span class="pun">);</span>
  28. <span class="pln"> button</span><span class="pun">.</span><span class="pln">setOnClickListener</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">View</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span>
  29. <span class="pln"> </span><span class="lit">@Override</span>
  30. <span class="pln"> </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onClick</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> view</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  31. <span class="pln"> textView</span><span class="pun">.</span><span class="pln">setText</span><span class="pun">(</span><span class="str">""</span><span class="pun">);</span>
  32. <span class="pln"> alertDialogBuilder </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">AlertDialog</span><span class="pun">.</span><span class="typ">Builder</span><span class="pun">(</span><span class="typ">MainActivity</span><span class="pun">.</span><span class="kwd">this</span><span class="pun">);</span>
  33. <span class="pln"> itemsIntoList </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Arrays</span><span class="pun">.</span><span class="pln">asList</span><span class="pun">(</span><span class="pln">alertDialogItems</span><span class="pun">);</span>
  34. <span class="pln"> alertDialogBuilder</span><span class="pun">.</span><span class="pln">setMultiChoiceItems</span><span class="pun">(</span><span class="pln">alertDialogItems</span><span class="pun">,</span><span class="pln"> selected</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">DialogInterface</span><span class="pun">.</span><span class="typ">OnMultiChoiceClickListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span>
  35. <span class="pln"> </span><span class="lit">@Override</span>
  36. <span class="pln"> </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onClick</span><span class="pun">(</span><span class="typ">DialogInterface</span><span class="pln"> dialogInterface</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> i</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> b</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  37. <span class="pln"> </span><span class="pun">}</span>
  38. <span class="pln"> </span><span class="pun">});</span>
  39. <span class="pln"> alertDialogBuilder</span><span class="pun">.</span><span class="pln">setCancelable</span><span class="pun">(</span><span class="kwd">false</span><span class="pun">);</span>
  40. <span class="pln"> alertDialogBuilder</span><span class="pun">.</span><span class="pln">setTitle</span><span class="pun">(</span><span class="str">"您點的餐點有&amp;#65306;"</span><span class="pun">);</span>
  41. <span class="pln"> alertDialogBuilder</span><span class="pun">.</span><span class="pln">setPositiveButton</span><span class="pun">(</span><span class="str">"確定"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">DialogInterface</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span>
  42. <span class="pln"> </span><span class="lit">@Override</span>
  43. <span class="pln"> </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onClick</span><span class="pun">(</span><span class="typ">DialogInterface</span><span class="pln"> dialogInterface</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> i</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  44. <span class="pln"> </span><span class="kwd">int</span><span class="pln"> index </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span>
  45. <span class="pln"> </span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln">index </span><span class="pun">&amp;</span><span class="pln">lt</span><span class="pun">;</span><span class="pln"> selected</span><span class="pun">.</span><span class="pln">length</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  46. <span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> </span><span class="kwd">value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> selected</span><span class="pun">[</span><span class="pln">index</span><span class="pun">];</span>
  47. <span class="pln"> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">value</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  48. <span class="pln"> textView</span><span class="pun">.</span><span class="pln">setText</span><span class="pun">(</span><span class="typ">String</span><span class="pun">.</span><span class="pln">format</span><span class="pun">(</span><span class="str">"%s%s\n"</span><span class="pun">,</span><span class="pln"> textView</span><span class="pun">.</span><span class="pln">getText</span><span class="pun">(),</span><span class="pln"> itemsIntoList</span><span class="pun">.</span><span class="kwd">get</span><span class="pun">(</span><span class="pln">index</span><span class="pun">)));</span>
  49. <span class="pln"> </span><span class="pun">}</span>
  50. <span class="pln"> index</span><span class="pun">++;</span>
  51. <span class="pln"> </span><span class="pun">}</span>
  52. <span class="pln"> </span><span class="pun">}</span>
  53. <span class="pln"> </span><span class="pun">});</span>
  54. <span class="pln"> alertDialogBuilder</span><span class="pun">.</span><span class="pln">setNeutralButton</span><span class="pun">(</span><span class="str">"取消"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">DialogInterface</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span>
  55. <span class="pln"> </span><span class="lit">@Override</span>
  56. <span class="pln"> </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onClick</span><span class="pun">(</span><span class="typ">DialogInterface</span><span class="pln"> dialogInterface</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> i</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  57. <span class="pln"> </span><span class="pun">}</span>
  58. <span class="pln"> </span><span class="pun">});</span>
  59. <span class="pln"> </span><span class="typ">AlertDialog</span><span class="pln"> diaLog </span><span class="pun">=</span><span class="pln"> alertDialogBuilder</span><span class="pun">.</span><span class="pln">create</span><span class="pun">();</span>
  60. <span class="pln"> diaLog</span><span class="pun">.</span><span class="pln">show</span><span class="pun">();</span>
  61. <span class="pln"> </span><span class="pun">}</span>
  62. <span class="pln"> </span><span class="pun">});</span>
  63. <span class="pln"> </span><span class="pun">}</span>
  64. <span class="pun">}</span>
  65. <span class="pun">&lt;/</span><span class="kwd">string</span><span class="pun">&gt;</span>

心得:蠻直覺的,沒用到DialogFragment之類的東東,簡明易懂,基本上直接讀code就知道每一行程式碼是在做些什麼事情,應該可以輕易地改成Button的onClick實做。



3.
參考連結:https://youtu.be/33BFCdL0Di0
MainActivity.java
  1. <span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">mycs</span><span class="pun">.</span><span class="pln">datepickdialog</span><span class="pun">;</span>
  2. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">annotation</span><span class="pun">.</span><span class="typ">TargetApi</span><span class="pun">;</span>
  3. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">DatePickerDialog</span><span class="pun">;</span>
  4. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Build</span><span class="pun">;</span>
  5. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span>
  6. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">support</span><span class="pun">.</span><span class="pln">annotation</span><span class="pun">.</span><span class="typ">RequiresApi</span><span class="pun">;</span>
  7. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">support</span><span class="pun">.</span><span class="pln">v7</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">AppCompatActivity</span><span class="pun">;</span>
  8. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">;</span>
  9. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">Button</span><span class="pun">;</span>
  10. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">DatePicker</span><span class="pun">;</span>
  11. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">TextView</span><span class="pun">;</span>
  12. <span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">text</span><span class="pun">.</span><span class="typ">DateFormat</span><span class="pun">;</span>
  13. <span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="typ">Calendar</span><span class="pun">;</span>
  14. <span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">AppCompatActivity</span>
  15. <span class="pln"> </span><span class="kwd">implements</span><span class="pln"> </span><span class="typ">View</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pln"> </span><span class="pun">{</span>
  16. <span class="pln"> </span><span class="typ">Button</span><span class="pln"> button</span><span class="pun">;</span>
  17. <span class="pln"> </span><span class="typ">TextView</span><span class="pln"> textView</span><span class="pun">;</span>
  18. <span class="pln"> </span><span class="lit">@Override</span>
  19. <span class="pln"> </span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  20. <span class="pln"> </span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span>
  21. <span class="pln"> setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span>
  22. <span class="pln"> button </span><span class="pun">=</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">button</span><span class="pun">);</span>
  23. <span class="pln"> textView </span><span class="pun">=</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">textView</span><span class="pun">);</span>
  24. <span class="pln"> button</span><span class="pun">.</span><span class="pln">setOnClickListener</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">);</span>
  25. <span class="pln"> </span><span class="pun">}</span>
  26. <span class="pln"> </span><span class="lit">@TargetApi</span><span class="pun">(</span><span class="typ">Build</span><span class="pun">.</span><span class="pln">VERSION_CODES</span><span class="pun">.</span><span class="pln">N</span><span class="pun">)</span>
  27. <span class="pln"> </span><span class="lit">@RequiresApi</span><span class="pun">(</span><span class="pln">api </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Build</span><span class="pun">.</span><span class="pln">VERSION_CODES</span><span class="pun">.</span><span class="pln">N</span><span class="pun">)</span>
  28. <span class="pln"> </span><span class="lit">@Override</span>
  29. <span class="pln"> </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onClick</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> view</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  30. <span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="typ">Calendar</span><span class="pln"> calendar </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Calendar</span><span class="pun">.</span><span class="pln">getInstance</span><span class="pun">();</span>
  31. <span class="pln"> </span><span class="kwd">int</span><span class="pln"> mYear </span><span class="pun">=</span><span class="pln"> calendar</span><span class="pun">.</span><span class="kwd">get</span><span class="pun">(</span><span class="typ">Calendar</span><span class="pun">.</span><span class="pln">YEAR</span><span class="pun">);</span>
  32. <span class="pln"> </span><span class="kwd">int</span><span class="pln"> mMonth </span><span class="pun">=</span><span class="pln"> calendar</span><span class="pun">.</span><span class="kwd">get</span><span class="pun">(</span><span class="typ">Calendar</span><span class="pun">.</span><span class="pln">MONTH</span><span class="pun">);</span>
  33. <span class="pln"> </span><span class="kwd">int</span><span class="pln"> mDay </span><span class="pun">=</span><span class="pln"> calendar</span><span class="pun">.</span><span class="kwd">get</span><span class="pun">(</span><span class="typ">Calendar</span><span class="pun">.</span><span class="pln">DAY_OF_MONTH</span><span class="pun">);</span>
  34. <span class="pln"> </span><span class="typ">DatePickerDialog</span><span class="pln"> datePickerDialog </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">DatePickerDialog</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">DatePickerDialog</span><span class="pun">.</span><span class="typ">OnDateSetListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span>
  35. <span class="pln"> </span><span class="lit">@Override</span>
  36. <span class="pln"> </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onDateSet</span><span class="pun">(</span><span class="typ">DatePicker</span><span class="pln"> view</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> year</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> month</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> dayOfMonth</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  37. <span class="pln"> </span><span class="typ">Calendar</span><span class="pln"> cal </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Calendar</span><span class="pun">.</span><span class="pln">getInstance</span><span class="pun">();</span>
  38. <span class="pln"> cal</span><span class="pun">.</span><span class="kwd">set</span><span class="pun">(</span><span class="typ">Calendar</span><span class="pun">.</span><span class="pln">YEAR</span><span class="pun">,</span><span class="pln"> year</span><span class="pun">);</span>
  39. <span class="pln"> cal</span><span class="pun">.</span><span class="kwd">set</span><span class="pun">(</span><span class="typ">Calendar</span><span class="pun">.</span><span class="pln">MONTH</span><span class="pun">,</span><span class="pln"> month</span><span class="pun">);</span>
  40. <span class="pln"> cal</span><span class="pun">.</span><span class="kwd">set</span><span class="pun">(</span><span class="typ">Calendar</span><span class="pun">.</span><span class="pln">DAY_OF_MONTH</span><span class="pun">,</span><span class="pln"> dayOfMonth</span><span class="pun">);</span>
  41. <span class="pln"> </span><span class="typ">String</span><span class="pln"> currentDateString </span><span class="pun">=</span><span class="pln"> </span><span class="typ">DateFormat</span><span class="pun">.</span><span class="pln">getDateInstance</span><span class="pun">(</span><span class="typ">DateFormat</span><span class="pun">.</span><span class="pln">FULL</span><span class="pun">).</span><span class="pln">format</span><span class="pun">(</span><span class="pln">cal</span><span class="pun">.</span><span class="pln">getTime</span><span class="pun">());</span>
  42. <span class="pln"> textView</span><span class="pun">.</span><span class="pln">setText</span><span class="pun">(</span><span class="pln">currentDateString</span><span class="pun">);</span>
  43. <span class="pln"> </span><span class="pun">}</span>
  44. <span class="pln"> </span><span class="pun">},</span><span class="pln"> mYear</span><span class="pun">,</span><span class="pln"> mMonth</span><span class="pun">,</span><span class="pln"> mDay</span><span class="pun">);</span>
  45. <span class="pln"> datePickerDialog</span><span class="pun">.</span><span class="pln">show</span><span class="pun">();</span>
  46. <span class="pln"> </span><span class="pun">}</span>
  47. <span class="pun">}</span>
  48.  
心得:要呼叫DatePickerDialog得要先傳值給它,不然他就是不開,然後API也要24以上,真任性!

4. 搭配ProgressBar的ProgressDialog
參考連結:https://www.journaldev.com/9652/android-progressdialog-example
MainActivity.java

  1. <span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">mycs</span><span class="pun">.</span><span class="pln">progressdialog</span><span class="pun">;</span>
  2. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">annotation</span><span class="pun">.</span><span class="typ">SuppressLint</span><span class="pun">;</span>
  3. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">ProgressDialog</span><span class="pun">;</span>
  4. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Handler</span><span class="pun">;</span>
  5. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Message</span><span class="pun">;</span>
  6. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">support</span><span class="pun">.</span><span class="pln">v7</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">AppCompatActivity</span><span class="pun">;</span>
  7. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span>
  8. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">;</span>
  9. <span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">Button</span><span class="pun">;</span>
  10. <span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">AppCompatActivity</span><span class="pln"> </span><span class="pun">{</span>
  11. <span class="pln"> </span><span class="typ">Button</span><span class="pln"> button</span><span class="pun">;</span>
  12. <span class="pln"> </span><span class="typ">ProgressDialog</span><span class="pln"> progressDialog</span><span class="pun">;</span>
  13. <span class="pln"> </span><span class="lit">@Override</span>
  14. <span class="pln"> </span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  15. <span class="pln"> </span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span>
  16. <span class="pln"> setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span>
  17. <span class="pln"> button </span><span class="pun">=</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">button</span><span class="pun">);</span>
  18. <span class="pln"> button</span><span class="pun">.</span><span class="pln">setOnClickListener</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">View</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span>
  19. <span class="pln"> </span><span class="lit">@Override</span>
  20. <span class="pln"> </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onClick</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> view</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  21. <span class="pln"> progressDialog </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ProgressDialog</span><span class="pun">(</span><span class="typ">MainActivity</span><span class="pun">.</span><span class="kwd">this</span><span class="pun">);</span>
  22. <span class="pln"> progressDialog</span><span class="pun">.</span><span class="pln">setMax</span><span class="pun">(</span><span class="lit">100</span><span class="pun">);</span>
  23. <span class="pln"> progressDialog</span><span class="pun">.</span><span class="pln">setMessage</span><span class="pun">(</span><span class="str">"It's loading..."</span><span class="pun">);</span>
  24. <span class="pln"> progressDialog</span><span class="pun">.</span><span class="pln">setTitle</span><span class="pun">(</span><span class="str">"Progress Dialog with bar example"</span><span class="pun">);</span>
  25. <span class="pln"> progressDialog</span><span class="pun">.</span><span class="pln">setProgressStyle</span><span class="pun">(</span><span class="typ">ProgressDialog</span><span class="pun">.</span><span class="pln">STYLE_HORIZONTAL</span><span class="pun">);</span>
  26. <span class="pln"> progressDialog</span><span class="pun">.</span><span class="pln">show</span><span class="pun">();</span>
  27. <span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Thread</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Runnable</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span>
  28. <span class="pln"> </span><span class="lit">@Override</span>
  29. <span class="pln"> </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> run</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span>
  30. <span class="pln"> </span><span class="kwd">try</span><span class="pln"> </span><span class="pun">{</span>
  31. <span class="pln"> </span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln">progressDialog</span><span class="pun">.</span><span class="pln">getProgress</span><span class="pun">()</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln">lt</span><span class="pun">;=</span><span class="pln"> progressDialog</span><span class="pun">.</span><span class="pln">getMax</span><span class="pun">())</span><span class="pln"> </span><span class="pun">{</span>
  32. <span class="pln"> </span><span class="typ">Thread</span><span class="pun">.</span><span class="pln">sleep</span><span class="pun">(</span><span class="lit">200</span><span class="pun">);</span>
  33. <span class="pln"> handle</span><span class="pun">.</span><span class="pln">sendMessage</span><span class="pun">(</span><span class="pln">handle</span><span class="pun">.</span><span class="pln">obtainMessage</span><span class="pun">());</span>
  34. <span class="pln"> </span><span class="kwd">if</span><span class="pun">(</span><span class="pln">progressDialog</span><span class="pun">.</span><span class="pln">getProgress</span><span class="pun">()</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> progressDialog</span><span class="pun">.</span><span class="pln">getMax</span><span class="pun">())</span><span class="pln"> </span><span class="pun">{</span>
  35. <span class="pln"> progressDialog</span><span class="pun">.</span><span class="pln">dismiss</span><span class="pun">();</span>
  36. <span class="pln"> </span><span class="pun">}</span>
  37. <span class="pln"> </span><span class="pun">}</span>
  38. <span class="pln"> </span><span class="pun">}</span><span class="pln"> </span><span class="kwd">catch</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Exception</span><span class="pln"> e</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  39. <span class="pln"> e</span><span class="pun">.</span><span class="pln">printStackTrace</span><span class="pun">();</span>
  40. <span class="pln"> </span><span class="pun">}</span>
  41. <span class="pln"> </span><span class="pun">}</span>
  42. <span class="pln"> </span><span class="pun">}).</span><span class="pln">start</span><span class="pun">();</span>
  43. <span class="pln"> </span><span class="pun">}</span>
  44. <span class="pln"> </span><span class="lit">@SuppressLint</span><span class="pun">(</span><span class="str">"HandlerLeak"</span><span class="pun">)</span>
  45. <span class="pln"> </span><span class="typ">Handler</span><span class="pln"> handle </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Handler</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span>
  46. <span class="pln"> </span><span class="lit">@Override</span>
  47. <span class="pln"> </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> handleMessage</span><span class="pun">(</span><span class="typ">Message</span><span class="pln"> msg</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
  48. <span class="pln"> </span><span class="kwd">super</span><span class="pun">.</span><span class="pln">handleMessage</span><span class="pun">(</span><span class="pln">msg</span><span class="pun">);</span>
  49. <span class="pln"> progressDialog</span><span class="pun">.</span><span class="pln">incrementProgressBy</span><span class="pun">(</span><span class="lit">1</span><span class="pun">);</span>
  50. <span class="pln"> </span><span class="pun">}</span>
  51. <span class="pln"> </span><span class="pun">};</span>
  52. <span class="pln"> </span><span class="pun">});</span>
  53. <span class="pln"> </span><span class="pun">}</span>
  54. <span class="pun">}</span>
  55.  

心得:因為ProgressDialog本身要在原地等候ProgressBar跑完不能動,所以調用一個新的執行緒(Thread),來handle進度。

No comments:

Post a Comment