บทความ

การสร้างลิงค์ใน DialogFragment ของ Android 1.5

รูปภาพ
มีหลายครั้งที่เราต้องการสร้างลิงค์เชื่อมโยงไปยังเว็บต่าง ๆ ใน DialogFragment ของ Android ดังภาพ หลักการ โดยปกติเราจะไม่สามารถใช้ลิงค์ไปยังหน้าเว็บอื่น ๆ จาก DialogFragment ได้ ถ้าต้องการให้มี Link เราต้องจัดการข้อความที่จะให้แสดง โดยทำให้เป็น SpannableString เสียก่อน ใช้ Linkyfy สร้างลิงค์ นำไปไว้ใน TextView และเอา TextView ไปไว้ใน Dialog อีกที จึงจะได้ลิงค์ตามต้องการ วิธีการ สร้างไฟล์ใหม่ ตั้งชื่อว่า AlertDialogWithLink สร้าง Java Class ชื่อ MyDialogFragment.java สำหรับเป็น adapter สร้าง Dialog MyDialogFragment.java package com.thongjoon.alertdialogwithlink; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.os.Bundle; import android.text.SpannableString; import android.text.method.LinkMovementMethod; import android.text.util.Linkify; import android.widget.TextView; public class MyDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { //

เกี่ยวกับ คอเลสเตอรอล: เรื่องต้องรู้

รูปภาพ
มารู้จัก คอเรสเตอรอล(Cholesterol) ของทุกคน แปลกใจไหม ถ้าจะบอกว่า คอเลสเตอรอลเป็นสิ่งดีและมีประโยชน์ ไม่ใช่สิ่งเลวร้ายอย่างที่คิด คอเลสเตอรอลเป็นสิ่งที่ร่างกายสร้างขึ้นและใช้เพื่อรักษาให้ร่างกายมีสุขภาพสมบูรณ์ คอเรสเตอรอล พบในกระแสเลือดและในเซลล์ทุกเซลล์ของร่างกาย คอเรสเตอรอลช่วยสร้างเยื่อหุ้มเซลล์( cell membranes ) ช่วยนำพาไขมันไปในกระแสเลือด ช่วยสร้างฮอร์โมนให้แก่ร่างกาย วิตามินดี และ กรดไบ ( bile acids ) ซึ่งช่วยในการย่อยไขมัน คอเรสเตอรอลยังช่วยด้านความจำ และการทำงานของสมองอีกด้วย โดยเฉพาะในด้านการทำงานของสมอง นับได้ว่า คอเรสเตอรอลมีส่วนสำคัญเป็นอย่างมาก คอเรสเตอรอลจำนวนประมาณ 3 ใน 4 ของจำนวนคอเรสเตอรอลทั้งหมดในร่างกาย สร้างขึ้นจากตับของคนเรา หรืออีกนัยหนึ่งก็คือ คอเรสเตอรอลส่วนใหญ่ที่มีในร่างกายของเรานั้น เกิดขึ้นจาก  ตับของเราสร้างขึ้น  นั่นเอง LDL และ HDL Cholesterol โมเลกุล ชื่อ  lipoproteins เป็นโมเลกุลที่พาคอเรสเตอรอลไปในกระแสเลือด โมเลกุล lipoproteins มี 2 ชนิดคือ  LDL ( low-density lipoprotein) และ HDL (high-density lipoprotein) ซี่งเรียกว่าเป็น LDL Cholesterol แล

การใช้ How do you like...? How much do you like...?

รูปภาพ
คำถามที่ขึ้นต้นด้วย คำว่า How do you like....? เป็นคำถามที่กำกวมเหมือนกันนะ How do you like ..... ? คุณชอบ...... มากแค่ไหน? หรือ How do you like ..... ? คุณชอบ...... อย่างไร? ลองดูประโยคต่อไปนี้ How do you like your steak? ถ้าพนักงานบริการอาหารถามคำถามนี้ในร้านอาหาร คำตอบก็คงจะเป็น medium-rare หรือ well done จะสุกมาก หรือ สุกน้อย ก็แล้วแต่ชอบ How do you like ..... ? ในความหมายนี้ ก็คงจะเป็นในทำนองว่า ชอบให้ทำสะเต็กอย่างไรนั่นเอง แต่ถ้าเพื่อนถามว่า How do you like steak? คำตอบก็อาจจะเป็นไปได้ว่า ชอบสุกมาก หรือสุกน้อย ตามข้างบน แต่ ก็ไม่ผิดนะ ถ้าจะตอบว่า It's not my favorite. ผมไม่ค่อยชอบซักเท่าไร ไม่ใช่ของโปรดของผม How do you like.....? ในความหมายหลังนี้ น่าจะเป็นไปในทำนองว่า ชอบมากน้อยแค่ไหน อย่างไรก็ตาม คนถามก็อาจจะงงนิดนึง ว่า ต้องการถามอีกอย่าง แต่ตอบอีกอย่าง งงเหมือนกัน ผมก็งงเหมือนกัน ทางที่ดี เวลาถาม ต้องถามให้ชัดลงไป จะดีกว่า โดยเฉพาะถ้าไม่มีสถานการณ์อะไรช่วย ต้องถามให้ชัดเจน เช่น คุณชอบสะเต็กแบบไหน สุกมาก หรือสุกน้อย ก็ถามว่า How do you like your ste

การตัดช่องว่างเว้นวรรคระหว่างคำ ใน MS Word 2010

รูปภาพ
สภาพปัญหา  เวลาคนไทยพิมพ์ภาษาอังกฤษ บางทีเว้นวรรคระหว่างคำ มากกว่า 1 วรรค ซึ่งไม่ถูกต้อง ทำให้เสียเวลาต้องมาแก้ไขลบวรรคออก ซึ่งต้องใช้เวลามาก ดังภาพ หลักการแก้ไข ใช้ Regular Expressions ค้นหาและแทนที่ โดยการค้นหาเว้นวรรคหลังคำแต่ละคำ ถ้ามีตั้งแต่ 2 วรรคขึ้นไป ก็ให้แทนที่ด้วยเว้นวรรค จำนวน 1 วรรค วิธีการ เปิดไฟล์ MS Word ที่มีข้อความที่ต้องแก้ไข ไปที่แถบ Replace หรือ แทนที่ ที่ช่อง ค้นหา ให้พิมพ์ ( ){2,} และช่อง แทนที่ ให้พิมพ์ \1 และคลิกปุ่ม เพิ่มเติม เลือก ใช้ Wildcard กดปุ่ม แทนที่ทั้งหมด จะเกิดหน้าจอ รายงานให้ทราบว่า พบและแทนที่ตามคำสั่งทั้งหมด กี่ตัว คลิกปุ่ม OK และปุ่ม ปิด Close จะได้ข้อความที่แก้ไขแล้ว ดังภาพ ถ้าต้องการยกเลิก ให้กด Ctrl+z จะคืนค่าให้เหมือนเดิม ดูวิธีการใช้ Regular Expression สำหรับการค้นหา และแทนที่ได้ ที่ https://support.office.com/en-us/article/Find-and-replace-text-by-using-regular-expressions-Advanced-eeaa03b0-e9f3-4921-b1e8-85b0ad1c427f#__toc282774574

การปรับแต่ง TabLayout ของ Android

รูปภาพ
TabLayout เป็นเหมือนกับแถบเมนูที่อยู่ด้านบนของหน้าจอ ต่อจาก toolbar ลงมา ดังภาพ เราสามารถจัดการปรับเปลี่ยน หรือตั้งค่าองค์ประกอบต่าง ๆ ได้ ดังนี้ การกำหนดขนาดตัวอักษรบน TabLayout ก่อนอื่นต้องกำหนด style ไว้ใน style.xml เช่น <style name="MyCustomTabText" parent="TextAppearance.Design.Tab"> <tem name="android:textSize">20sp</item> </style> จากนั้น ที่ไฟล์ xml layout ที่มี TabLayout กำหนดให้ใช้ Style กับตัวอักษร ดังนี้ <android.support.design.widget.TabLayout ... app:tabTextAppearance="@style/MyCustomTabText" ... /> การจัดให้ TabLayout อยู่กึ่งกลางหน้าจอ ที่ไฟล์ xml layout ที่มี TabLayout กำหนดให้ใช้ Style กับตัวอักษร ดังนี้ <android.support.design.widget.TabLayout ... android:layout_gravity="center" ... /> ในกรณีที่มีการกำหนดให้ TabLaout มี scrollable ได้ ต้องเอาออกด้วย เพราะจะขัดกัน มี 2 อย่างอยู่ด้วยกันไม่ได้ การกำหนดความหนา และสี ของ S

การใช้ let, let's

รูปภาพ
เราคุ้นเคยกับคำว่า Let's เช่นพูดว่า Let's go now. = ไปกันเลยตอนนี้ Let's go for a walk. = ไปเดินเล่นกันดีกว่า แต่คำว่า Let ยังมีอีกหลายความหมาย รวมทั้งมีสำนวนเกี่ยวกับ Let ที่น่าสนใจอีกด้วย ความหมายที่ 1: อนุญาต รูปแบบประโยคคือ => let + object + infinitive without to เช่น She let me look at the photos. ( ไม่ใช่   She let me to look at the photos. ) เธอให้ผม/ฉันดูรูปภาพพวกนั้น การใช้ในความหมายว่าอนุญาต เราจะไม่ใช้ let ในกรณีที่เป็น Passive Voice เราพูดว่า They didn't let us take photographs inside the theater. We weren't allowed to take photographs inside the theater. อย่าใช้ We weren't let (to) take photographs... ความหมายที่ 2 เสนอแนะ/ชักชวน พูดว่า/ใช้  Let us ... ในกรณีที่เป็นทางการมาก ๆ เช่นในการเขียน หรือ กล่าวสนุทรพจน์ Let us remember all those who have died in this terrible conflict. ขอเราจงจำพวกเขาเหล่านั้นซึ่งเสียชีวิตในความขัดแย้งที่เลวร้า

การใช้คำว่า next to

รูปภาพ
next to ส่วนใหญ่เรามักจะแปลกันว่า ต่อจาก เช่น Suda is sitting next to Prakob. = สุดานั่งต่อจากประกอบ แต่ความจริง คำว่า next to มีความหมายได้หลายอย่าง เช่น ความหมายที่ 1 หมายถึง ต่อจาก ติดกัน หรือ ข้าง ๆ มีความหมายเดียวกับคำว่า adjacent to  เช่น  Trump is next to Putin.  The kitten is next to the rabbit. ความหมายที่ 2 หมายถึง เกือบจะ หรือ ใกล้จะ หรือ มีความหมายเดียวกับคำว่า almost หรือ nearly เช่น He has sold his house and has no job and so now he has next to nothing. เขาขายบ้าน และไม่มีงานทำ ดังนั้น ตอนนี้เขาเกือบจะไม่มีอะไรเลย I bought this antique chair for next to nothing. ผมซื้อเก่าอี้โบราณตัวนี้ได้ถูกเหมือนได้เปล่า ความหมายที่ 3 หมายถึง นอกจากนี้ (aside from/in addition to/besides) เช่น Next to fried rice, chicken curry is my favorite dish. นอกจากข้าวผัดแล้ว อาหารจานเด็ดที่ผมชอบคือแกงไก่

Would you like a hand ....?

รูปภาพ
คำว่า hand หมายถึง มือ แต่ Would you like a hand...? ไม่ได้หมายความว่า คุณต้องการมือ นะครับ Would you like a hand...?   คำว่า hand ในประโยคนี้ หมายถึงความช่วยเหลือให้ทำอะไรสักอย่าง คำกริยาที่ต่อมา ต้องเติม ing เช่น Would you like a hand ​ carrying those bags? คุณต้องการความช่วยเหลือให้ช่วยเอากระเป๋าพวกนั้นไปให้หรือไม่ Would you like a hand bringing those bags up to your room? Our bellhop can take those for you. คุณต้องการความช่วยเหลือให้ขนกระเป๋าพวกนั้นไปที่ห้องคุณหรือไม่ พนักงาน (ยกกระเป๋า) โรงแรมของเราขนกระเป๋าไปให้ได้ สำนวนอื่น ๆ ที่มีความหมายว่า ความช่วยเหลือ เช่น give someone a hand  Could you give me a hand with the ​ table, ​ please? ช่วยจัดการโต๊ะนี่หน่อยนะครับ ? ( ได้ไหมครับ) lend someone a hand  Could you lend me a hand with the table,  ​ please? ช่วยจัดการโต๊ะนี่หน่อยนะครับ ? ( ได้ไหมครับ) สำนวนเกี่ยวกับ Hand อื่น ๆ ที่น่าสนใจ get/have a hand in something = มีส่วนร่วมในการเริ่มต้น หรือดำเนินกิจกรรม เช่น I would like to have a hand in the pl

มังสวิรัติ กับ มะเร็งลำไส้ใหญ่ และโรคหัวใจ

รูปภาพ
คิดว่า มังสวิรัติ ซึ่งกินผักที่มีเส้นใยสูงช่วยให้ระบายท้องได้ดี ไม่น่าจะมีปัญหาในเรื่องมะเร็งลำไส้ แต่วันนี้ฟังหมอดาเลีย (The Dr Daliah Show Thursday March 2016 Hour 2)  บอกว่า คนกินผัก หรือ Vegetarian หรือ มังสวิรัติ เสี่ยงต่อการเป็นมะเร็งลำไส้ (colon cancer) และโรคหัวใจ (heart disease) ผู้ที่มีบรรพบุรุษที่เป็นมังสะวิรัติ หรือ Vegetarian ได้รับการสืบทอดการกลายพันธุ์ในระดับยีนหรือโมเลกุลของดีเอ็นเอ (DNA Gene Mutation) จากบรรพบุรุษ การกลายพันธ์นี้มีประโยชน์คือ ช่วยให้เราสามารถดูดซึมสารอาหารที่จำเป็นจากพืชได้ แต่มีผลเสียคือ เมื่อเรากินอาหารที่ใช้น้ำมันพืช(vegetable oils) เช่น น้ำมันทานตะวัน ยีนนี้จะเปลี่ยนกรดไขมัน(fatty acids) เป็น กรดแอแลคาโดนิค (arachidonic acid) ซึ่งจะทำให้เกิด inflammation disease (การอักเสพ) ซึ่งจะส่งผลให้มีความเสี่ยงต่อการเป็นมะเร็งลำไส้ (colon cancer) และโรคหัวใจ (heart disease) โดยสรุปคือ ผู้ที่เป็นมังสวิรัติ หรือ Vegetarian มีความเสี่ยงต่อการเป็นมะเร็งลำไส้ มากกว่าผู้ที่กินเนื้อ (meat eaters) ประมาณ 40% เป็นวิจัยของมหาวิทยาลัย Cornell University โดย Profes

การตรวจสอบ หรือ Debug โปรแกรม ใน Android Studio

รูปภาพ
การ Debug โปรแกรม เป็นเรื่องสำคัญ เพราะทำให้เรารู้ว่ามีข้อผิดพลาด หรือ Error อะไรเกิดขึ้นอย่างไร และ ณ จุดนั้น ค่าต่าง ๆ ของตัวแปรเป็นอย่างไร เป็นไปตามที่ต้องการหรือไม่ เพื่อที่จะได้แก้ไขให้ตรงจุด ก่อนการแก้ไข ควรเปิด Simulator ให้เรียบร้อยเสียก่อน ผมชอบใช้ โทรศัพท์จริง เป็น Simulator เพราะเท่าที่สังเกตดูน่าจะเร็วกว่าการใช้ Simulator ใน PC การ Debug โปรแกรมใน Android Studio มีดังนี้ เปิดโปรแกรม ใน Android Studio และไปยังจุดที่ต้องการดูค่าต่าง ๆ  คลิกเพิ่มจุดหยุด หรือ Break point หน้าบรรทัดที่ต้องการดูค่าตัวแปร ในภาพ จะเห็นว่ามีการกำหนดจุดหยุด 2 จุดด้วยกัน คลิกปุ่ม Debug บนแถบเมนู Android Studio จะให้เลือก Simulator ถ้าเปิดไว้ก่อนก็จะมีมาแสดง ในตัวอย่างนี้ ผมใช้โทรศัพท์ จึงแสดงดังภาพ เมื่อกดปุ่ม OK โปรแกรม Android Studio จะทำงานในโหมด Debug โดยจะหยุดในตำแหน่งที่ระบุไว้ด้วยจุดสีแดง  จะเห็นมีหน้าจอ Debug เกิดขึ้น ถ้าไม่เห็น สามารถคลิกแถบ Debug ที่ด้านล่างได้ ในหน้าจอ Debug จะเห็นแถบควบคุมต่าง ๆ เช่น แถบตรวจดูค่าของตัวแปร หรือ Watches ถ้าไม่เห็นแถบดังกล่าว แสดงว่าแ

การสร้าง ViewPager สำหรับ Android 1.5

รูปภาพ
ViewPager ของ Android ทำให้สามารถสร้างหน้าจอข้อมูลบนโทรศัพท์ที่ใช้ OS ของ Android ได้สะดวกขึ้น เพราะมีการออกแบบไว้แล้วอย่างเรียบร้อย สามารถใช้นิ้วลาก/ปัด/swipe เพื่อเปลี่ยนหน้า จากอีกหน้าหนึ่ง ไปยังหน้าหนึ่งได้ ดังตัวอย่างข้างล่างนี้ ในตัวอย่างนี้ ใช้ Android Studio 1.5 เพื่อสร้าง ViewPager โดยใช้ Fragment เพียง Fragment เดียว และส่งข้อมูลมาแสดงจำนวนทั้งหมด 6 หน้าด้วยกัน การส่งข้อมูลไปยัง Fragment ใช้การส่งแบบ static โดยส่งเป็น String แล้วมาแยกเพื่อนำไปแสดงใน TextView จำนวน 2 ข้อความด้วยกัน นอกจากนี้ จะมีการกำหนดให้มีหัวของแต่ละรายการ โดยใช้ PageStrip เพื่อแสดงรายการ หลักการ สร้าง Fragment สำหรับแสดงข้อมูลแต่ละหน้า ในตัวอย่างนี้ จะแสดงเฉพาะ ชื่อ และจังหวัดเท่านั้น โดยจะใช้ Fragment นี้กับข้อมูลทั้งหมด ซึ่งมีด้วยกัน 6 รายการ (แสดงรายการละหน้า) ไฟล์ Java Class สำหรับ Fragment นี้ จะกำหนดให้มีตัวแปร เป็น Static เพื่อรับการส่งข้อมูลเข้ามาจากภายนอกด้วย จากนั้นจะสร้าง Adapter ซึ่งเป็นตัวกลางจัดการข้อมูลไปยัง Fragment และสุดท้าย ก็จะเป็นหน้าหลัก ซึ่งมี Fragment