Software/Android/¥¢¥×¥ê¥±¡¼¥·¥ç¥ó³«È¯¥Æ¥¥¹¥È Chapter 2 : ¼ÂÍÑ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó³«È¯¤Î´ðÁà †¡¡¤³¤Î¾Ï¤Ç¤Ï¥Õ¥¡¥¤¥ë¸¡º÷¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î³«È¯¤òÄ̤·¤Æ¡¢¼ÂÍÑŪ¤ÊAndroid¥¢¥×¥ê¥±¡¼¥·¥ç¥ó³«È¯¤Î´ðÁäò²òÀ⤷¤Þ¤¹¡£ ¡¡Android¤Ë¤Ï¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤ÇÆ°ºî¤¹¤ë¥µ¡¼¥Ó¥¹¡¢¥Û¡¼¥à²èÌ̤ËÀßÃÖ²Äǽ¤Ê¥¦¥£¥¸¥§¥Ã¥È¤È¤¤¤Ã¤¿ÍÍ¡¹¤Ê·ÁÂ֤Υ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Â¸ºß¤·¤Þ¤¹¤¬¡¢ËܾϤǤÏÁ´²èÌ̤òÀêͤ¹¤ë²èÌÌ¡Ê¥¦¥£¥ó¥É¥¦¡Ë¤ò»ý¤Ä¡¢°ìÈÌŪ¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¼è¤ê°·¤¤¤Þ¤¹¡£
2-1. ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥¸¥§¥¯¥È¤Î¹½À®Í×ÁÇ †¡¡¤Þ¤º¤Ï¥Ù¡¼¥¹¤È¤Ê¤ë¥×¥í¥¸¥§¥¯¥È¤òÍÑ°Õ¤·¤Þ¤¹¡£°Ê²¼¤ÎÍͤËÀßÄꤷ¡¢¿·µ¬Android¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥¸¥§¥¯¥È¤òºîÀ®¤·¤Þ¤¹¡£
¡¡Android¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥×¥í¥¸¥§¥¯¥È¤ÏÂ礤¯Ê¬¤±¤Æ°Ê²¼¤Î3¤Ä¤ÎÍ×ÁǤǹ½À®¤µ¤ì¤Þ¤¹¡£
¡¡ºîÀ®¤·¤¿¥×¥í¥¸¥§¥¯¥È¤òPackage Explorer¤Ç³Îǧ¤·¤Ä¤Ä¡¢³ÆÍ×ÁǤˤĤ¤¤Æ²òÀ⤷¤Æ¤¤¤¤Þ¤¹¡£
¡¥Þ¥Ë¥Õ¥§¥¹¥È¥Õ¥¡¥¤¥ë¡ÊAndroidManifest.xml¡Ë ¡¡¥ê¥¹¥È2-1¤¬º£²ó¼«Æ°Åª¤ËºîÀ®¤µ¤ì¤¿¥Þ¥Ë¥Õ¥§¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤¹¡£
¡¡applicationÍ×ÁǤÎandroid:icon°À¤¬¤³¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç»ÈÍѤ¹¤ë¥é¥ó¥Á¥ã¡¼¥¢¥¤¥³¥ó¤ò¼¨¤·¡¢android:label°À¤Ï¤³¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î̾Á°¤ò¼¨¤·¤Þ¤¹¡£ ¡¡activityÍ×ÁǤˤϤ³¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë´Þ¤Þ¤ì¤ë¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤Ë´Ø¤¹¤ë¾ðÊó¤òµ½Ò¤·¤Þ¤¹¡£¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë»ë³ÐŪ¤Ê¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¤â¤Î¤Ç¡¢Â¾¤ÎOS¤Ç¸À¤¦¡Ö²èÌ̡פä¡Ö¥¦¥£¥ó¥É¥¦¡×¤ËÁêÅö¤·¤Þ¤¹¡£Ä̾ï¤Ï£±¤Ä¤Î¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤¬Á´²èÌ̤òÀêͤ·¡¢Ê£¿ô¤Î¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤ò»ý¤Ä¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤ì¤òÀÚ¤êÂؤ¨¤Æ»ÈÍѤ·¤Þ¤¹¡£ ¡¡¤³¤Î¥Þ¥Ë¥Õ¥§¥¹¥È¤Ç¤Ï¡¢FFindActivity¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤¬¤³¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¥á¥¤¥ó¤È¤Ê¤ë²èÌ̤Ǥ¢¤ê¡¢Android¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥é¥ó¥Á¥ã¡¼¤ËÅÐÏ¿¤µ¤ìµ¯Æ°²Äǽ¤Ç¤¢¤ë¤³¤È¤¬¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¢Java¥½¡¼¥¹¥³¡¼¥É
¡¡FFindActivity.java¡Ê¥ê¥¹¥È2-2¡Ë¤ÎonCreate¥á¥½¥Ã¥É¤Ï¡¢FFindActivity¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤¬À¸À®¤µ¤ì¤ëºÝ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¥á¥½¥Ã¥É¤Ç¡¢¤³¤Î¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤ËɬÍפʽé´üÀßÄê¤ò¤³¤³¤Ëµ½Ò¤·¤Þ¤¹¡£¤³¤³¤Ç¤Ïsuper¥¯¥é¥¹¤ÎonCreate¤ò¸Æ¤Ó½Ð¤·¤Æ´ðËÜŪ¤Ê½é´üÀßÄê¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤ë¤Û¤«¡¢setContentView¥á¥½¥Ã¥É¤Ç¤³¤Î¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤Î³°´Ñ¤òÀßÄꤷ¤Æ¤¤¤Þ¤¹¡£ £¥ê¥½¡¼¥¹ ¡¡drawable¤Ë¤Ï²èÁü¥Õ¥¡¥¤¥ë¤Ê¤É¤ÎÉÁ²è²Äǽ¤Ê¥ê¥½¡¼¥¹¤¬ÃÖ¤«¤ì¤Þ¤¹¡£-hdpi/-mdpi/-ldpi¤È¤¤¤¦¥µ¥Õ¥£¥Ã¥¯¥¹¤¬ÉÕÍ¿¤µ¤ì¤¿3¤Ä¤Î¥Õ¥©¥ë¥À¤¬ºîÀ®¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤ì¤ÏAndroid¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¿ÍͤʴĶ¤ËưŪ¤ËÂбþ¤µ¤»¤ë¤¿¤á¤Î»ÅÁȤߤǡ¢¤½¤ì¤¾¤ì¹â²òÁüÅÙ/Ãæ²òÁüÅÙ/Äã²òÁüÅÙüËöÍѤÎÉÁ²è¥ê¥½¡¼¥¹¤òÇÛÃÖ¤·¤Þ¤¹¡£ ¡¡layout¤Ë¤Ï¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤Î²èÌ̥쥤¥¢¥¦¥È¤òµ½Ò¤·¤¿XML¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤Þ¤¹¡£¥×¥í¥¸¥§¥¯¥ÈºîÀ®»þÅÀ¤Ç¤Ïmain.xml¤È¤¤¤¦¥ì¥¤¥¢¥¦¥È¥Õ¥¡¥¤¥ë¤¬¼«Æ°À¸À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¡¡values¤Ë¤Ïʸ»úÎó¤äÎóµó¤È¤¤¤Ã¤¿¡¢ÍÍ¡¹¤ÊÃͤòÄêµÁ¤·¤¿XML¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤Þ¤¹¡£¥×¥í¥¸¥§¥¯¥ÈºîÀ®»þÅÀ¤Ç¤Ïstrings.xml¤È¤¤¤¦Ê¸»úÎó¤òÄêµÁ¤·¤¿XML¥Õ¥¡¥¤¥ë¤¬¼«Æ°À¸À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥Õ¥©¥ë¥À¤Ë¡Ö-ja¡×¤ä¡Ö-en¡×¤È¤¤¤Ã¤¿¥µ¥Õ¥£¥Ã¥¯¥¹¤ò¤Ä¤±¤¿¤â¤Î¤òºîÀ®¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¸À¸ìÊ̤ÎÃͥ꥽¡¼¥¹¤òÍÑ°Õ¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£ ¡¡¥ê¥½¡¼¥¹¤Ï¥ê¥½¡¼¥¹ID¤Ë¤è¤Ã¤Æ¥Þ¥Ë¥Õ¥§¥¹¥È¤äJava¥½¡¼¥¹¥³¡¼¥É¡¢Â¾¤Î¥ê¥½¡¼¥¹¤«¤é»²¾È¤µ¤ì¤Þ¤¹¡£¥ê¥½¡¼¥¹ID¤Ë¤ÏXML¥Õ¥¡¥¤¥ë¤Ç»²¾È¤µ¤ì¤ë¾ì¹ç¤ÈJava¥½¡¼¥¹¥³¡¼¥É¤Ç»²¾È¤µ¤ì¤ë¾ì¹ç¤È¤ÇÆó¼ïÎà¤ÎµË¡¤¬¤¢¤ê¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡drawable¤Èlayout¤Ï¤½¤Î¤Þ¤Þ¥ê¥½¡¼¥¹¼ïÊ̤Ȥʤꡢ¥ê¥½¡¼¥¹Ì¾¤Ë¤Ï¥ê¥½¡¼¥¹¼ÂÂΤΥե¡¥¤¥ë̾¤«¤é¥µ¥Õ¥£¥Ã¥¯¥¹¤ò¼è¤ê½ü¤¤¤¿Êª¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤Þ¤Ç¸«¤¿Îã¤Ç¸À¤¨¤Ð¡¢drawable-hdpi/mdpi/ldpi¤Ë´Þ¤Þ¤ì¤ëic_launcher.png¤Î¥ê¥½¡¼¥¹ID¤Ï¡Ö@drawable/ic_launcher¡×¡ÖR.drawable.ic_launcher¡×¡¢layout¤Ë´Þ¤Þ¤ì¤ëmain.xml¤¬¡ÖR.layout.main¡×¤Ë¤Ê¤ë¡¢¤È¸À¤Ã¤¿¶ñ¹ç¤Ç¤¹¡£ ¡¡values¤Ë´Þ¤Þ¤ì¤ëXML¥Õ¥¡¥¤¥ë¤Î¥ê¥½¡¼¥¹¼ïÊ̤Ïvalues¤È¤Ï¤Ê¤é¤º¡¢¤½¤ì¤¾¤ì¤ÎXML¥Õ¥¡¥¤¥ëÆâ¤ÇÄêµÁ¤µ¤ì¤¿Í×ÁÇ̾¤Ë¤Ê¤ê¤Þ¤¹¡£¼«Æ°À¸À®¤µ¤ì¤¿strings.xml¡Ê¥ê¥¹¥È2-3¡Ë¤Ë¤Ï¡¢resourcesÍ×ÁǤ˰Ϥޤ줿string¤È¤¤¤¦Í×ÁǤ¬Ê¤ó¤Ç¤¤¤Þ¤¹¡£¤³¤ÎÍ×ÁÇ̾¤¬¥ê¥½¡¼¥¹¼ïÊ̤Ȥʤꡢname°À¤¬¥ê¥½¡¼¥¹Ì¾¤È¤Ê¤ê¤Þ¤¹¡£
2-2. ¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤Î¹½À®Í×ÁǤȥ쥤¥¢¥¦¥È †¡¡Android¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î´é¤È¤Ê¤ë¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó²èÌ̤Îɽ¼¨¤ÎÏÈÁȤߤòÄ󶡤·¤Þ¤¹¤¬¡¢¤³¤ì¤À¤±¤Ç¤Ï²¿¤«¤òɽ¼¨¤·¤¿¤ê¥æ¡¼¥¶¡¼ÆþÎϤò¼õ¤±ÉÕ¤±¤¿¤ê¤È¤¤¤Ã¤¿¤³¤È¤¬½ÐÍè¤Þ¤»¤ó¡£¤³¤ÎÏȤÎÃæ¤Ë¡¢¥Ó¥å¡¼¡ÊView¡Ë¤ä¥Ó¥å¡¼¥°¥ë¡¼¥×¡ÊViewGroup¡Ë¤È¤¤¤Ã¤¿³¬Áع½Â¤¤ò»ý¤ÄGUIÉôÉʤòÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¡¡¥Ó¥å¡¼¤ÏGUIÉôÉʤδðËܤȤʤë¤â¤Î¤Ç¡¢¥Ü¥¿¥ó¤ä¥Æ¥¥¹¥È¥Ü¥Ã¥¯¥¹¤Ê¤É¤ÏÁ´¤Æ¥Ó¥å¡¼¤Ç¤¹¡£¤Þ¤¿¸å½Ò¤Î¥Ó¥å¡¼¥°¥ë¡¼¥×¤â¥Ó¥å¡¼¤Î°ì¼ï¤È¤Ê¤ê¤Þ¤¹¡£¥Ó¥å¡¼¥°¥ë¡¼¥×¤Ï¥Ó¥å¡¼¤òÊ£¿ô¤Þ¤È¤á¤Æ´ÉÍý¤¹¤ë¤â¤Î¤Ç¡¢GUIÉôÉʤò¤É¤Î¤è¤¦¤ËÇÛÃÖ¤¹¤ë¤«¤ò·èÄꤹ¤ë¥ì¥¤¥¢¥¦¥È¤â¤³¤ì¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£ ¡¡¥ì¥¤¥¢¥¦¥È¤ÏGUIÉôÉʤò¤É¤Î¤è¤¦¤ËÇÛÃÖ¤¹¤ë¤«¤ò·èÄê¤Å¤±¤ë¥Ó¥å¡¼¥°¥ë¡¼¥×¤Ç¡¢LinearLayout¤äRelativeLayout¡¢TableLayout¤È¤¤¤Ã¤¿ÇÛÃÖÊýË¡¤Î°Û¤Ê¤ë¥ì¥¤¥¢¥¦¥È¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¡¡¤³¤Î¾¤Ë¤âÍÑÅӤ˱þ¤¸¤¿¤¤¤¯¤Ä¤«¤Î¥ì¥¤¥¢¥¦¥È¤¬Ä󶡤µ¤ì¤Æ¤ª¤ê¡¢¥ì¥¤¥¢¥¦¥È¼«ÂΤⳬÁØŪ¤ËÇÛÃÖ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£
2-3. ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥ì¥¤¥¢¥¦¥ÈºîÀ® †¡¡¤³¤³¤«¤é¤ÏºîÀ®¤·¤¿¥×¥í¥¸¥§¥¯¥È¤ò¤â¤È¤Ë¼ÂºÝ¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÁȤßÂؤ¨¤Æ¤¤¤¤Þ¤¹¡£º£²óºîÀ®¤¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏAndroidüËöÆâ¤Î¥Õ¥¡¥¤¥ë¤òÁöºº¤·¡¢ÆþÎϤµ¤ì¤¿¥¡¼¥ï¡¼¥É¤ò¥Õ¥¡¥¤¥ë̾¤Ë´Þ¤à¥Õ¥¡¥¤¥ë¤ò°ìÍ÷ɽ¼¨¤¹¤ë¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£ ¡¡¿Þ2-2¤¬º£²ó¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î²èÌÌ¥¤¥á¡¼¥¸¤È¤Ê¤ê¤Þ¤¹¡£ ¿Þ2-2
¡¡Eclipse¤ÎPackage Explorer¤«¤émain.xml¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤·¤Æ³«¤¡¢¾åµ¥¤¥á¡¼¥¸¤Ë¤¢¤ï¤»¥ì¥¤¥¢¥¦¥È¤òÊѹ¹¤·¤Æ¤¤¤¤Þ¤¹¡£¼«Æ°À¸À®¤µ¤ì¤¿main.xml¤Ï¿Þ2-3¤Î¤è¤¦¤Ë¡¢½ÄÊý¸þ¤ÎLinearLayout¤òºÆ¾å°Ì¤ËÃÖ¤¡¢¤½¤³¤ËTextView¤ò1¤ÄÇÛÃÖ¤·¤¿Êª¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¿Þ2-3
¡¡¥µ¥ó¥×¥ë¥×¥í¥¸¥§¥¯¥È¤Ç¤Ï¡ÖHello World, FFindActivity!¡×¤Èɽ¼¨¤¹¤ëTextView¤¬ÇÛÃÖ¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤ì¤ÏÉÔÍפȤʤë¤Î¤ÇÃæ±û¤Î¥ì¥¤¥¢¥¦¥¿¤Ç³ºÅö²Õ½ê¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤«¡¢±¦Éô¤ÎOutline¤«¤é¡ÖTextView¡×¤È¤Ê¤Ã¤Æ¤¤¤ë¹Ô¤ò¥¯¥ê¥Ã¥¯¤·¤ÆÁªÂò¤·¡¢ºï½ü¥¡¼¤ä±¦¥¯¥ê¥Ã¥¯¤Ë¤è¤ë¥Ý¥Ã¥×¥¢¥Ã¥×¥á¥Ë¥å¡¼¤Î¡ÖDelete¡×¤òÁªÂò¤·¤Æºï½ü¤·¤Þ¤¹¡£ ¡¡Â³¤¤¤Æº¸Éô¤ÎPalette¤«¤éLayouts¤ò¥¯¥ê¥Ã¥¯¤·¤ÆŸ³«¤·¡¢LinearLayout (Horizontal)¤òÀè¤Û¤ÉTextView¤¬¤¢¤Ã¤¿¾ì½ê¤Ë¥É¥é¥Ã¥°¡õ¥É¥í¥Ã¥×¤ÇÇÛÃÖ¤·¤Þ¤¹¡£¤³¤ì¤Ç¥Ó¥å¡¼¤ò²£Êý¸þ¤Ëʤ٤ë¤è¤¦Í½¤áÀßÄꤵ¤ì¤¿LinearLayout¤¬ºÇ¾å°Ì¤ÎLinearLayoutÇÛ²¼¤ËÄɲ䵤ì¤Þ¤¹¡£ ¡¡¼¡¤Ë¤³¤Î¥ì¥¤¥¢¥¦¥È¤Ë¥¡¼¥ï¡¼¥É¤òÆþÎϤ¹¤ë¥Æ¥¥¹¥È¥Ü¥Ã¥¯¥¹¤È¸¡º÷¥Ü¥¿¥ó¤òÇÛÃÖ¤·¤Þ¤¹¡£º¸Éô¤ÎPaltette¤«¤éText Fields¤ò¥¯¥ê¥Ã¥¯¤·¤ÆŸ³«¤·¡¢¡Öabc¡×¤È½ñ¤«¤ì¤¿¥Æ¥¥¹¥È¥Ü¥Ã¥¯¥¹¡ÊPlain Text¡Ë¤òº£Äɲä·¤¿¥ì¥¤¥¢¥¦¥È¾å¤ËÇÛÃÖ¤·¤Þ¤¹¡£ÇÛÃÖ¤·¤¿¥Æ¥¥¹¥È¥Ü¥Ã¥¯¥¹¤ò¥¯¥ê¥Ã¥¯¤·¡¢¥ì¥¤¥¢¥¦¥¿²¼Éô¤Î¡ÖProperties¡×¡Ê¢¨¡Ë¤Ç°Ê²¼¤Î¤è¤¦¤ËÀßÄê¤òÊѹ¹¤·¤Þ¤¹¡£
¡¡Id¤ËÆþÎϤ·¤¿ÆâÍƤϤ³¤Î¥Æ¥¥¹¥È¥Ü¥Ã¥¯¥¹¤Î¥ê¥½¡¼¥¹ID¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢¤³¤Î»þÅÀ¤Ç¤É¤³¤Ë¤âÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¡Ö@+¥ê¥½¡¼¥¹¼ïÊÌ/¥ê¥½¡¼¥¹Ì¾¡×¤È¤¤¤¦µË¡¤Ï¡¢¤³¤Î¾ì¤Ç»ØÄꤷ¤¿¥ê¥½¡¼¥¹¼ïÊ̤˥꥽¡¼¥¹Ì¾¤òÄɲ乤뤳¤È¤òɽ¤·¤Þ¤¹¡£ ¡¡Layout height¤ÈLayout width¤Ï¤³¤Î¥Ó¥å¡¼¤Î¹â¤µ¤ÈÉý¤ò·èÄꤹ¤ë°À¤Ç¡¢wrap_content¤ò»ØÄꤹ¤ë¤È¤½¤Î¥Ó¥å¡¼¼«¿È¤¬É¬ÍפȤ¹¤ë¥µ¥¤¥º¤Ë¼«Æ°Åª¤ËÄ´À°¤µ¤ì¤Þ¤¹¡£¤³¤Î¾¡¢¿Æ¤È¤Ê¤ë¥Ó¥å¡¼¤Î¥µ¥¤¥º¤Ë¥Õ¥£¥Ã¥È¤µ¤»¤ëfill_parent¡ÊAPI level 8°Ê¹ß¤Ç¤Ïmatch_parent¡Ë¤ä¡¢¥µ¥¤¥º¤òľÀÜ»ØÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ ¡¡Single line¤òtrue¤Ë¤¹¤ë¤È¡¢¤³¤Î¥Æ¥¥¹¥È¥Ü¥Ã¥¯¥¹¤Ë¤ÏÊ£¿ô¹Ô¤ÎÆþÎϤ¬½ÐÍè¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£¥Õ¥¡¥¤¥ë̾¤Î°ìÉô¤¬²þ¹Ô¤ò´Þ¤àÊ£¿ô¹Ô¤Ë¤Þ¤¿¤¬¤ë¤³¤È¤ÏͤêÆÀ¤Ê¤¤¤¿¤á¡¢¤³¤³¤Ç¤Ïtrue¤òÀßÄꤷ¤Æ¤¤¤Þ¤¹¡£ ¡¡°ú¤Â³¤¸¡º÷¥Ü¥¿¥ó¤òÄɲä·¤Þ¤¹¡£º¸Éô¤ÎPalette¤«¤éForm Widgets¤ò¥¯¥ê¥Ã¥¯¤·¤ÆŸ³«¤·¡¢¡ÖButton¡×¤ò¥É¥é¥Ã¥°¡õ¥É¥í¥Ã¥×¤Ç¥Æ¥¥¹¥È¥Ü¥Ã¥¯¥¹¤Î±¦Â¦¤ËÇÛÃÖ¤·¤Þ¤¹¡£ÇÛÃÖ¤·¤¿¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¡¢¥ì¥¤¥¢¥¦¥¿²¼Éô¤Î¡ÖProperties¡×¤Ç°Ê²¼¤Î¤è¤¦¤ËÀßÄê¤òÊѹ¹¤·¤Þ¤¹¡£
¡¡Layout weight¤ò¶õ¤Ë¤¹¤ë¤³¤È¤Ç¤³¤Î¥Ü¥¿¥ó¤Ïɽ¼¨¤Ë¤ê¤ë¤À¤±¤ÎÂ礤µ¤ËÄ´À°¤µ¤ì¤Þ¤¹¡£ ¡¡Text°À¤Ï¤³¤Î¥Ü¥¿¥ó¤Ëɽ¼¨¤¹¤ë¥é¥Ù¥ë¤Îʸ»úÎó¤ò»ØÄꤷ¤Þ¤¹¡£@string/find_button¤È¤¤¤¦¥ê¥½¡¼¥¹ID¤Ï¤³¤ÎÃʳ¬¤Ç¤Ï¤Þ¤ÀÄêµÁ¤·¤Æ¤¤¤Ê¤¤¤¿¤á¡¢¤³¤Î¤Þ¤Þ¤Ç¤Ï¥ê¥½¡¼¥¹ID¤¬¤½¤Î¤Þ¤Þ¥Ü¥¿¥ó¤Ëɽ¼¨¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡¡Package Explorer¤«¤éstrings.xml¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤·¤Æ³«¤¡¢Ê¸»úÎó¥ê¥½¡¼¥¹¤òÄɲä·¤Þ¤¹¡£ÉÔÍפˤʤä¿@string/helloʸ»úÎó¥ê¥½¡¼¥¹¤Ïºï½ü¤·¡¢¥ê¥¹¥È2-4¤Î¤è¤¦¤ËÊÔ½¸¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡ºÇ¸å¤Ë¸¡º÷·ë²Ì¤òɽ¼¨¤¹¤ë¥Ó¥å¡¼¤òÄɲä·¤Þ¤¹¡£ËÜÍèɽ¼¨ÍѤȤ·¤ÆŬÀڤǤϤ¢¤ê¤Þ¤»¤ó¤¬¡¢ÀâÌÀ¤ò´Êñ¤Ë¤¹¤ë¤¿¤á¥Æ¥¥¹¥È¥Ü¥Ã¥¯¥¹¤ò¤³¤³¤Ç¤â»ÈÍѤ·¤Þ¤¹¡£ºÆ¤ÓPalette¤«¤éText Fields¤ò¥¯¥ê¥Ã¥¯¤·¤ÆŸ³«¤·¡¢¥×¥ì¡¼¥ó¥Æ¥¥¹¥È¥Ü¥Ã¥¯¥¹¤òFindTarget/FindButton¤Î²¼Éô¤Ë¥É¥é¥Ã¥°¡õ¥É¥í¥Ã¥×¤ÇÇÛÃÖ¤·¤Þ¤¹¡£¤³¤Á¤é¤Î¥Æ¥¥¹¥È¥Ü¥Ã¥¯¥¹¤Î¥×¥í¥Ñ¥Æ¥£¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡Layout height/Layout width¤Ëfill_parent¡ÊAPI level 8°Ê¹ß¤Ç¤Ïmatch_parent¡Ë¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢²èÌ̤λĤê¤ò¤³¤Î¥Æ¥¥¹¥È¥Ü¥Ã¥¯¥¹¤¬Àêͤ¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡¡¤³¤³¤Þ¤Ç¤ÇOutline¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¡£¿Æ»Ò´Ø·¸¤¬¤ª¤«¤·¤¤¾ì¹ç¡¢Outline¾å¤Ç³Æ¥Ó¥å¡¼Ì¾¤ò¥É¥é¥Ã¥°¡õ¥É¥í¥Ã¥×¤¹¤ë¤³¤È¤ÇÄ´À°¤¬½ÐÍè¤Þ¤¹¡£ ¡¡¡¦LinearLayout ¡¡°Ê¾å¤Ç¥ì¥¤¥¢¥¦¥ÈºîÀ®¤Ï´°Î»¤Ç¤¹¡£¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¼Â¹Ô¤·¤Æ¡¢ºîÀ®¤·¤¿¥ì¥¤¥¢¥¦¥È¤¬È¿±Ç¤µ¤ì¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ²¼¤µ¤¤¡£
2-4. ¸¡º÷½èÍý¤Î¼ÂÁõ †¡¡¤³¤³¤«¤é¤ÏAndroid¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÁöºº¤·¡¢»ØÄê¤Î¥¡¼¥ï¡¼¥É¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤ò¥ê¥¹¥È¥¢¥Ã¥×¤¹¤ë½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£ ¡¡Package Explorer¤ÇFFindActivity.java¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤·¤Æ³«¤¡¢onCreate¥á¥½¥Ã¥É¤Î¸å¤Ë°Ê²¼¤Îprivate¥á¥½¥Ã¥É¤òÄɲä·¤Þ¤¹¡£
¡¡¤³¤Î¥á¥½¥Ã¥É¤Ïfolder¤Ç»ØÄꤵ¤ì¤¿¥Õ¥©¥ë¥À¤Î¥Õ¥¡¥¤¥ë°ìÍ÷¤ò¼èÆÀ¤·¡¢target¤Ç»ØÄꤵ¤ì¤¿¥¡¼¥ï¡¼¥É¤Ë°ìÃפ¹¤ëʪ¤¬¤¢¤ì¤Ðlist¤ËÄɲäò¹Ô¤¦ºÆµ¢Åª¥á¥½¥Ã¥É¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡Ê¸¡º÷·ë²Ì¤ÏºÇÂç5000·ï¤Þ¤Ç¤È¤·¤Æ¤¤¤Þ¤¹¡Ë¡£File¥¯¥é¥¹¤ÎlistFiles¥á¥½¥Ã¥É¤Ç°ìÍ÷¤ò¼èÆÀ¤·¡¢¥ê¥¹¥È¤Î³Æ¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤ÆgetName¤Ç¼èÆÀ¤·¤¿¥Õ¥¡¥¤¥ë̾¤ò¥Á¥§¥Ã¥¯¤·¡¢target¤¬´Þ¤Þ¤ì¤Æ¤¤¤ì¤Ð¥ê¥¹¥È¤ËÄɲ䷤Ƥ¤¤Þ¤¹¡£ ¡¡¤³¤³¤Ç»ÈÍѤ·¤Æ¤¤¤ëFile¥¯¥é¥¹¤ÈArrayList¥¯¥é¥¹¤òÍøÍѲÄǽ¤Ë¤¹¤ë¤¿¤á¡¢Î¾¥Ñ¥Ã¥±¡¼¥¸¤òandroid.app.Activity¤ÎÁ°¤Ç¥¤¥ó¥Ý¡¼¥È¤·¤Þ¤¹¡£ import java.io.File; import java.util.ArrayList; ¡¡¼¡¤Ë¡¢¸¡º÷·ë²Ì¤ò³ÊǼ¤¹¤ë¤¿¤á¡¢onCreate¥á¥½¥Ã¥É¤ÎľÁ°¤Ç°Ê²¼¤Î¥á¥ó¥ÐÊÑ¿ô¤òÄɲä·¤Þ¤¹¡£ArrayList¤Ï»ØÄꥯ¥é¥¹¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÍ×ÁǤ˻ý¤ÄÇÛÎó¥ê¥¹¥È¤Î¥Æ¥ó¥×¥ì¡¼¥È¥¯¥é¥¹¤Ç¤¹¡£ private ArrayList<String> mList; ¡¡onCreate¤ÎsetContentView¸Æ¤Ó½Ð¤·¸å¤Ë¤³¤ÎÇÛÎó¥ê¥¹¥È¤òÀ¸À®¤·¡¢¸¡º÷¥Ü¥¿¥ó¤Î½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡Ê¥ê¥¹¥È2-6¡Ë¡£
¡¡findViewById¥á¥½¥Ã¥É¤Ï¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤ä¥Ó¥å¡¼¤¬»ý¤Ã¤Æ¤¤¤ë»Ò¥Ó¥å¡¼¤ò¥ê¥½¡¼¥¹ID¤Ç¸¡º÷¤·¤ÆÊÖ¤¹¥á¥½¥Ã¥É¤Ç¡¢¤³¤³¤Ç¤Ï¡ÖR.id.FindButton¡×¤ò»ØÄꤷ¤Æ¸¡º÷¥Ü¥¿¥ó¤ò¼èÆÀ¤·¤Æ¤¤¤Þ¤¹¡£ ¡¡onClick¤¬¼ÂºÝ¤Ë¥Ü¥¿¥ó¤Î½èÍý¤ò¼ÂÁõ¤¹¤ë¥á¥½¥Ã¥É¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤Î¥á¥½¥Ã¥É¤Ë¤Ï¥¯¥ê¥Ã¥¯¤ò°ú¤µ¯¤³¤·¤¿¥Ó¥å¡¼¤¬°ú¿ô¤È¤·¤ÆÅϤµ¤ì¤ë¤¿¤á¡¢getId¥á¥½¥Ã¥É¤Ç¼èÆÀ¤·¤¿¥ê¥½¡¼¥¹ID¤¬¸¡º÷¥Ü¥¿¥ó¤Îʪ¤Ç¤¢¤ë¤«¤ò¥Á¥§¥Ã¥¯¤·¡¢¸¡º÷½èÍý¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¡¡ºÇ¸å¤Ë·ë²Ì¥ê¥¹¥È¤ÎÆâÍƤò¥Á¥§¥Ã¥¯¤·¡¢¶õ¤Ç¤Ê¤±¤ì¤Ð¥ê¥¹¥È¤ÎÆâÍƤòResult¥Æ¥¥¹¥È¥Ü¥Ã¥¯¥¹¤Ë¥»¥Ã¥È¤·¤Þ¤¹¡£ ¡¡°Ê¾å¤Ç¼ÂÁõ¤Ï´°Î»¤Ç¤¹¡£Áᮼ¹Ԥ·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
2-5. ANRÌäÂê¤È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥Þ¥ë¥Á¥¹¥ì¥Ã¥É²½ †¡¡Á°¹à¤Ç´°À®¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤¹¤¬¡¢¸¡º÷·ë²Ì¤¬Â¿¤¯¤Ê¤ë¤È¿Þ2-4¤Î¤è¤¦¤Ê¥¨¥é¡¼¤¬È¯À¸¤·¤ÆÍî¤È¤µ¤ì¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ ¿Þ2-4
¡¡¤³¤ì¤ÏANR¡ÊApplication Not Responding¡Ë¤È¸Æ¤Ð¤ì¡¢Android¤Î¥Ý¥ê¥·¡¼¤Ë¤è¤êȯÀ¸¤¹¤ë¸½¾Ý¤Ç¤¹¡£ ¡¡Android¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏÄ̾Æä˲¿¤â°Õ¼±¤»¤º¤ËºîÀ®¤·¤¿¾ì¹ç¡¢UI¤ÎÉÁ²è¤ò´Þ¤àÁ´¤Æ¤Î½èÍý¤¬¥á¥¤¥ó¥¹¥ì¥Ã¥É¤È¸Æ¤Ð¤ì¤ëñ°ì¤Î¥¹¥ì¥Ã¥É¤ÇÆ°ºî¤·¤Þ¤¹¡£°ìÊý¤Ç¡¢Android¤Ï¤³¤Î¥á¥¤¥ó¥¹¥ì¥Ã¥É¤¬5Éðʾå±þÅú¤·¤Ê¤¤¾ì¹ç¡¢Àè¤ÎANR¤ò°ú¤µ¯¤³¤·¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¶¯À©Åª¤Ë½ªÎ»¤µ¤»¤è¤¦¤È¤·¤Þ¤¹¡£ ¡¡Android¤Ï¸µ¡¹¥¹¥Þ¡¼¥È¥Õ¥©¥óÍѤÎOS¤È¤·¤Æ³«È¯¤µ¤ì¤¿¤¿¤á¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥ쥹¥Ý¥ó¥¹¤òÂè°ì¤Ë¹Í¤¨¤ÆÀ߷פµ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢Ä¹»þ´Ö±þÅú¤ò»ß¤á¤Æ¤·¤Þ¤¦¤è¤¦¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ïµö¤µ¤ì¤Þ¤»¤ó¡£²¾¤Ë¤½¤Î¤è¤¦¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¾ì¹ç¤Ç¤â¡¢¥·¥¹¥Æ¥à¦¤Ç¶¯À©Åª¤Ë»ß¤á¤é¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¡¢ÅÅÏ䬤«¤«¤Ã¤Æ¤¤¿¤Î¤Ë½Ð¤é¤ì¤Ê¤¤¡¢¤È¤¤¤Ã¤¿Ã×̿Ū¤ÊÌäÂ꤬µ¯¤¤Ê¤¤¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¹¡£ ¡¡¤Þ¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥óñÂΤǹͤ¨¤Æ¤â¡¢¥á¥¤¥ó¥¹¥ì¥Ã¥É¤Ë»þ´Ö¤Î¤«¤«¤ë½èÍý¤ò¹Ô¤ï¤»¤ë¤È¡Ö¥Ü¥¿¥ó¤ò²¡¤·¤Æ¤âÈ¿±þ¤¬Ìµ¤¤¡×¡ÖĹ»þ´Ö²èÌ̤¬¸Ç¤Þ¤ë¡×¤È¤¤¤Ã¤¿°õ¾Ý¤ò¥æ¡¼¥¶¡¼¤ËÍ¿¤¨¤«¤Í¤Ê¤¤¤Î¤ÇÈò¤±¤ë¤Ù¤¤Ç¤·¤ç¤¦¡£ ¡¡¤³¤¦¤·¤¿ÌäÂê¤òÈò¤±¤ë¤¿¤á¡¢»þ´Ö¤Î¤«¤«¤ë½èÍý¤Ï¥á¥¤¥ó¥¹¥ì¥Ã¥É¤È¤ÏʬΥ¤·¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Ç¼Â¹Ô¤¹¤ëɬÍפ¬½Ð¤Æ¤¤Þ¤¹¡£¤½¤³¤Ç¤³¤³¤«¤é¤ÏÀè¤Û¤ÉºîÀ®¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¡¢¥¯¥ê¥Ã¥¯»þ¤Ë¹Ô¤¦½èÍý¤òÊÌ¥¹¥ì¥Ã¥É¤Ç¼Â¹Ô¤¹¤ë¤è¤¦½¤Àµ¤·¤Æ¤¤¤¤Þ¤¹¡£¥ê¥¹¥È2-7¤¬onClickÆâ¤Î½èÍý¤òÊÌ¥¹¥ì¥Ã¥É²½¤·¤¿Êª¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡onClick¤ÇFindButton¤«¤É¤¦¤«³Îǧ¤·¤¿¸å¡¢Thread¥¯¥é¥¹¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¡¢¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤¿run¥á¥½¥Ã¥É¤ÎÃæ¤Ë¸¡º÷½èÍý¤ò°Ü¤·¤Æ¤¤¤Þ¤¹¡£¥¹¥ì¥Ã¥É¤Îstart¥á¥½¥Ã¥É¤Ë¤è¤êÊÌ¥¹¥ì¥Ã¥É¤¬³«»Ï¤µ¤ì¤Æ¡¢run¥á¥½¥Ã¥É¤¬¤½¤³¤Ç¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¿Þ2-5
¡¡»þ´Ö¤Î¤«¤«¤ë½èÍý¤ÏÊÌ¥¹¥ì¥Ã¥É¤Ç¹Ô¤ï¤»¤Ä¤Ä¡¢½èÍý¤¬´°Î»¤·¤¿¸å¤ÎÉÁ²è½èÍý¤ò¥á¥¤¥ó¥¹¥ì¥Ã¥É¤Ç¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤Ë¤Ï¤¤¤¯¤Ä¤«¤Î²ò·èË¡¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¤³¤³¤Ç¤ÏHandler¥¯¥é¥¹¤Îpost¥á¥½¥Ã¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ import android.os.Handler; ¡¡FFindActivity¤Îprivate¥á¥ó¥Ð¤Ë·ë²Ìɽ¼¨ÍѤÎString¤ÈHandler¥¯¥é¥¹¤òÄɲä·¤Þ¤¹¡£ private String mResult; private Handler mHandler = new Handler(); ¡¡onClick¤Î¤¦¤ÁUI¤òÁàºî¤¹¤ëɬÍפ¬¤¢¤ë²Õ½ê¤ò½¤Àµ¤·¤Þ¤¹¡Ê¥ê¥¹¥È2-8¡Ë¡£
¡¡¸¡º÷·ë²Ì¤Î¥µ¥¤¥º¤ò³Îǧ¤·¤¿¸å¡¢¥ê¥¹¥ÈÆâ¤Î¥Ç¡¼¥¿¤ò·ë²Ìɽ¼¨ÍÑʸ»úÎó¤Ë³ÊǼ¤·¡¢Handler¤Îpost¥á¥½¥Ã¥É¤ÇRunnable¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¯¥é¥¹¤ò¥á¥¤¥ó¥¹¥ì¥Ã¥É¤ËÁ÷¿®¤·¤Æ¤¤¤Þ¤¹¡£Runnable¤ò¼õ¿®¤·¤¿¥á¥¤¥ó¥¹¥ì¥Ã¥É¤¬¤³¤Îrun¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤·¡¢Æ±¥á¥½¥Ã¥ÉÆâ¤Ë¼ÂÁõ¤µ¤ì¤¿½èÍý¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ¡¡¤³¤ì¤Ç»þ´Ö¤Î¤«¤«¤ë¸¡º÷½èÍý¤òÊÌ¥¹¥ì¥Ã¥É¤ËÄɤ¤½Ð¤·¡¢¸¡º÷½ªÎ»¸å¤Ë¥á¥¤¥ó¥¹¥ì¥Ã¥É¤Ç·ë²Ìɽ¼¨¤ò¹Ô¤¦¤³¤È¤¬½ÐÍè¤Þ¤·¤¿¡£ 2-6. AsyncTask¤Ë¤è¤ë¥Þ¥ë¥Á¥¹¥ì¥Ã¥É½èÍý †¡¡Á°¹à¤Ç¤ÏThread¤ÈHandler¤ò»ÈÍѤ·¤Æ»þ´Ö¤Î¤«¤«¤ë½èÍý¤ò¥á¥¤¥ó¥¹¥ì¥Ã¥É¤«¤éʬΥ¤·¤Þ¤·¤¿¤¬¡¢Android¤Ç¤Ï¤³¤¦¤·¤¿½èÍý¤ÎÀÚ¤êʬ¤±¤ò´Êñ¤Ë¼ÂÁõ¤¹¤ë¤³¤È¤Î½ÐÍè¤ëAsyncTask¤È¤¤¤¦¥æ¡¼¥Æ¥£¥ê¥Æ¥£¥¯¥é¥¹¤¬Ä󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£FFind¤ò¤³¤ÎAsyncTask¤òÍøÍѤ·¤¿Êª¤Ëºî¤êÂؤ¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£ ¡¡AsyncTask¤Ë¤Ï¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Ç¹Ô¤¦É¬Íפ¬¤¢¤ë½èÍý¤ò¼ÂÁõ¤¹¤ë¥á¥½¥Ã¥É¤ä¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É½èÍý¤Î´°Î»¸å¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¥á¥½¥Ã¥É¤¬ÍÑ°Õ¤µ¤ì¤Æ¤ª¤ê¡¢¤³¤ì¤é¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤¹¤ë¤³¤È¤ÇÈóƱ´ü½èÍý¤ò´Êñ¤Ë¼Â¸½½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ÂåɽŪ¤Êʪ¤ò°Ê²¼¤Ëµó¤²¤Æ¤¤¤¤Þ¤¹¡£
¡¡¤³¤³¤«¤é¤Ï¼ÂºÝ¤ËAsyncTask¤Î¥µ¥Ö¥¯¥é¥¹¤òºîÀ®¤·¡¢FFind¤ËɬÍפʽèÍý¤ò¼ÂÁõ¤·¤Æ¤¤¤¤Þ¤¹¡£Eclipse¤ÎPackage Explorer¤ÇFFind¤ò¥¯¥ê¥Ã¥¯¤·¤ÆÁªÂò¤·¡¢¥á¥Ë¥å¡¼¤«¤é¡ÖFile > New > Class¡×¤òÁªÂò¤·¤Þ¤¹¡£ ¿Þ2-6
¡¡¿Þ2-6¤Î¥À¥¤¥¢¥í¥°¤¬É½¼¨¤µ¤ì¤¿¤é¡¢Package¤Ë¡Öcom.beatcraft.ffind¡×¡¢Name¤Ë¡ÖFindTask¡×¡¢Superclass¤Ë¡Öandroid.os.AsyncTask<String, Integer, Void>¡×¤ÈÆþÎϤ·¤Æ¡ÖFinish¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£¤³¤ì¤ÇFindTask.java¤È¤¤¤¦Java¥½¡¼¥¹¥³¡¼¥É¤¬¼«Æ°À¸À®¤µ¤ì¡¢FFind¤Î¥×¥í¥¸¥§¥¯¥È¤ËÄɲ䵤ì¤Þ¤¹¡£ ¡¡Superclass¤ÎÍó¤ËÆþÎϤ·¤¿Ä̤ꡢAsyncTask¤Ï3¤Ä¤Î·¿¤ò»ØÄꤹ¤ë¥Æ¥ó¥×¥ì¡¼¥È¥¯¥é¥¹¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢1¤Ä¤á¤ÏdoInBackground¥á¥½¥Ã¥É¤Î°ú¿ô¤Î·¿¡¢2¤Ä¤á¤ÏonProgressUpdate¥á¥½¥Ã¥É¤Î°ú¿ô¤Î·¿¡¢3¤Ä¤á¤ÏonPostExecute¥á¥½¥Ã¥É¤Î°ú¿ô¤Î·¿¤ò»ØÄꤷ¤Þ¤¹¡£ ¡¡ºîÀ®¤µ¤ì¤¿FindTask.java¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤·¤Æ³«¤¡¢¥á¥ó¥ÐÊÑ¿ô¤È¥³¥ó¥¹¥È¥é¥¯¥¿¤òÄɲä·¤Þ¤¹¡Ê¥ê¥¹¥È2-9¡Ë¡£
¡¡¸¡º÷½èÍý¤È·ë²Ì¤ÎÈ¿±Ç¤òFFindActivity¤Ç¹Ô¤¦¤¿¤á¡¢¤³¤ì¤òÊÝ»ý¤¹¤ë¤¿¤á¤ÎÊÑ¿ô¤òÄɲ䷤Ƥ¤¤Þ¤¹¡£¥³¥ó¥¹¥È¥é¥¯¥¿¤ÇFFindActivity¤ò°ú¿ô¤Ë¼è¤ê¡¢Äɲä·¤¿ÊÑ¿ô¤Ë³ÊǼ¤·¤Þ¤¹¡£
¡¡doInBackground¤Î°ú¿ô¤Ï¥Æ¥ó¥×¥ì¡¼¥È¤Ç»ØÄꤷ¤¿·¿¤Î²ÄÊÑĹ°ú¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤³¤«¤é°ì¤ÄÌܤÎÍ×ÁǤò¼è¤ê½Ð¤·¡¢¸¡º÷¥¡¼¥ï¡¼¥É¤È¤·¤ÆFFindActivity¤ÎlistFile¥á¥½¥Ã¥É¤ËÅϤ·¤Æ¤¤¤Þ¤¹¡£¤³¤³¤Ç¸Æ¤Ó½Ð¤·¤Æ¤¤¤ëlistFile¥á¥½¥Ã¥É¤Ï¤³¤ì¤Þ¤Ç¤Ë¼ÂÁõ¤·¤¿¸¡º÷¥á¥½¥Ã¥É¤Ç¤Ï¤Ê¤¯FindTask¤«¤é¸¡º÷½èÍý¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤ËÍøÍѤ¹¤ë¤â¤Î¤Ç¡¢¤³¤Î¸å¤Ç¼ÂÁõ¤·¤Æ¤¤¤¤Þ¤¹¡Ê°ú¿ô¤¬°Û¤Ê¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡Ë¡£
¡¡onPostExecute¤Ï¸¡º÷¤¬´°Î»¤·¤¿ºÝ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¤Î¤Ç¡¢FFindActivity¤Îresult¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤·¤Æ¸¡º÷·ë²Ì¤ÎÈ¿±Ç¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡Êresult¥á¥½¥Ã¥É¤Ï¸å¤Û¤É¼ÂÁõ¤·¤Þ¤¹¡Ë¡£ ¡¡°Ê¾å¤ÇFindTask¤Î¼ÂÁõ¤Ï¤Ò¤È¤Þ¤º´°Î»¤Ç¤¹¡£Â³¤¤¤ÆFFindActivity¤ò¡¢¤³¤ÎFindTask¤òÍøÍѤ·¤¿·Á¤Ë½¤Àµ¤·¤Æ¤¤¤¤Þ¤¹¡£FindButton¤ËOnClickListener¤òÀßÄꤹ¤ëºÝ¤ÎonClick¤ò¡¢°Ê²¼¤Î¤è¤¦¤Ë½¤Àµ¤·¤Þ¤¹¡Ê¥ê¥¹¥È2-12¡Ë¡£
¡¡¥¡¼¥ï¡¼¥É¤¬¶õ¤Ç¤Ê¤«¤Ã¤¿¾ì¹çFindTask¤òÀ¸À®¤·¡¢execute¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤·¤Æ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É½èÍý¤ò³«»Ï¤·¤Æ¤¤¤Þ¤¹¡£¤³¤Î»þ¡¢execute¥á¥½¥Ã¥É¤ËÅϤ·¤¿°ú¿ô¤¬doInBackground¤Ë°ú¤ÅϤµ¤ì¤Þ¤¹¡£Thread¤ÈHandler¤Ç¹Ô¤Ê¤Ã¤Æ¤¤¤¿½èÍý¤òAsyncTask¤ËÅý¹ç¤·¤¿¤¿¤á¡¢Èó¾ï¤Ë¤¹¤Ã¤¤ê¤È¤·¤¿µ½Ò¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¥á¥ó¥ÐÊÑ¿ô¤ÎmHandler¤ÏÉÔÍפȤʤ俤Τǡ¢¤³¤Á¤é¤ÎÀë¸À¤È¥Ñ¥Ã¥±¡¼¥¸¥¤¥ó¥Ý¡¼¥È¤âºï½ü¤·¤Æ¤ª¤¤Þ¤¹¡£ ¡¡FindTask¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤ë¸¡º÷½èÍý¤È·ë²Ìɽ¼¨¤Î¥á¥½¥Ã¥É¤òÄɲä·¤Þ¤¹¡£
¡¡FindTask¤ÎdoInBackground¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤¿listFile¥á¥½¥Ã¥É¤Ç¤Ï¡¢ÅϤµ¤ì¤¿¥¡¼¥ï¡¼¥É¤ò¸¡º÷Âоݡ¢¥ë¡¼¥È¥Õ¥©¥ë¥À¡Ê"/"¡Ë¤ò¸¡º÷³«»Ï¥Õ¥©¥ë¥À¤È¤·¤Æ¼ÂºÝ¤Î¸¡º÷½èÍý¤ò¸Æ¤Ó½Ð¤·¤¿¤¢¤È¡¢·ë²Ì³ÊǼÍѤÎString¤ËÀ°·Á¤·¤Æ³ÊǼ¤·¤Æ¤¤¤Þ¤¹¡£doInBackground¤Ï¥á¥¤¥ó¥¹¥ì¥Ã¥É¤È¤ÏÊ̤Υ¹¥ì¥Ã¥É¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤ë¤¿¤á¡¢¤³¤Î½èÍý¤¬Ä¹»þ´Ö¤«¤«¤Ã¤Æ¤â¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ANR¤ÇÄä»ß¤µ¤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¡¡FindTask¤ÎonPostExecute¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤¿result¥á¥½¥Ã¥É¤Ç¤Ï¸¡º÷·ë²Ì¤Îʸ»úÎó¤òResult¥Æ¥¥¹¥È¥Ü¥Ã¥¯¥¹¤ËÀßÄꤷ¤Æ¤¤¤Þ¤¹¡£onPostExecute¤Ï¥á¥¤¥ó¥¹¥ì¥Ã¥É¤Ç¸Æ¤Ó½Ð¤µ¤ì¤ë¤¿¤á¡¢EditText¤ÎsetText¤ò¼Â¹Ô¤·¤Æ¤â¥¨¥é¡¼¤¬µ¯¤¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¡¡¤Þ¤¿¡¢¸¡º÷·ë²Ì¤¬0·ï¤À¤Ã¤¿¾ì¹ç²¿¤âɽ¼¨¤·¤Ê¤¤¤Î¤Ï¤ï¤«¤ê¤Å¤é¤¤¤¿¤á¡¢Toast¤ò»ÈÍѤ·¤ÆÄÌÃΤ¹¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¡Ê¿Þ2-7¡Ë¡£Toast¤Ï¥æ¡¼¥¶¡¼¤«¤é¤Î¥ì¥¹¥Ý¥ó¥¹¤òɬÍפȤ·¤Ê¤¤´Êñ¤Ê¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¥Ý¥Ã¥×¥¢¥Ã¥×¥À¥¤¥¢¥í¥°¤Ç¡¢ÆÃÄê¤Î½èÍý¤òÄ̲ᤷ¤¿ºÝ¤Ëɽ¼¨¤¹¤ë¤Ê¤É´Ê°×¥Ç¥Ð¥Ã¥°¥Ä¡¼¥ë¤È¤·¤Æ¤âÍøÍѽÐÍè¤Þ¤¹¡Ê⤷¡¢Toast¤â¥á¥¤¥ó¥¹¥ì¥Ã¥É¤«¤é¤Ç¤Ê¤±¤ì¤ÐÍøÍѽÐÍè¤Ê¤¤¤¿¤áÃí°Õ¤¬É¬ÍפǤ¹¡Ë¡£ ¿Þ2-7
¡¡FFind¤ÎAsyncTask²½¤Ï¤³¤ì¤Ç´°Î»¤Ç¤¹¤¬¡¢¤è¤ê¤ï¤«¤ê¤ä¤¹¤¯¡¢¸¡º÷Ãæ¤Ï¥×¥í¥°¥ì¥¹¥À¥¤¥¢¥í¥°¤òɽ¼¨¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£ ¡¡FFindTask.java¤ò³«¤¡¢¥×¥í¥°¥ì¥¹¥À¥¤¥¢¥í¥°¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥Ý¡¼¥È¤·¤Þ¤¹¡£ import android.app.ProgressDialog; ¡¡¥×¥í¥°¥ì¥¹¥À¥¤¥¢¥í¥°¤ò¥á¥ó¥ÐÊÑ¿ô¤ËÄɲä·¤Þ¤¹¡£ private ProgressDialog mDialog; ¡¡onPreExecute¥á¥½¥Ã¥É¤òÄɲä·¡¢¥×¥í¥°¥ì¥¹¥À¥¤¥¢¥í¥°¤ÎÀ¸À®¤Èɽ¼¨¤ò¹Ô¤¤¤Þ¤¹¡Ê¥ê¥¹¥È2-14¡Ë¡£
¡¡¥À¥¤¥¢¥í¥°¤ÎsetMessage¥á¥½¥Ã¥É¤Ï¥À¥¤¥¢¥í¥°¤Ëɽ¼¨¤¹¤ë¥á¥Ã¥»¡¼¥¸¤òÀßÄꤹ¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£¤³¤³¤Ç»ØÄꤷ¤Æ¤¤¤ëR.string.find_progress¤Ï¸å¤Û¤Éʸ»úÎó¥ê¥½¡¼¥¹¤ËÄɲä·¤Þ¤¹¡£ ¡¡onPostExecute¥á¥½¥Ã¥É¤ò½¤Àµ¤·¡¢¥×¥í¥°¥ì¥¹¥À¥¤¥¢¥í¥°¤ò¾Ãµî¤·¤Þ¤¹¡Ê¥ê¥¹¥È2-15¡Ë¡£
¡¡¥ê¥½¡¼¥¹¤Îstrings.xml¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤·¤Æ³«¤¡¢°Ê²¼¤Îʸ»úÎó¥ê¥½¡¼¥¹¤òÄɲä·¤Þ¤¹¡£ <string name="find_progress">¸¡º÷Ãæ...</string> ¡¡°Ê¾å¤Ç½¤Àµ¤Ï´°Î»¤Ç¤¹¡£¸¡º÷Ãæ¤Ï¿Þ2-8¤Î¤è¤¦¤Ê¥À¥¤¥¢¥í¥°¤¬É½¼¨¤µ¤ì¡¢¸¡º÷¤¬½ªÎ»¤¹¤ë¤È¼«Æ°Åª¤Ë¾Ã¤¨¤ë¤³¤È¤ò³Îǧ¤·¤Æ²¼¤µ¤¤¡£ ¿Þ2-8
¡¡¥×¥í¥°¥ì¥¹¥À¥¤¥¢¥í¥°¤Ï¸½ºß¤Î¿ÊĽ¾õ¶·¤ò¥Ð¡¼¤Ç¼¨¤¹¤Ê¤É¡¢¤¤¤¯¤Ä¤«¤Î¥¹¥¿¥¤¥ë¤¬»ÈÍѲÄǽ¤Ç¤¹¡£AsyncTask¤ÎonProgressUpdate¥á¥½¥Ã¥ÉÆâ¤Ç¥À¥¤¥¢¥í¥°¤Î¿ÊĽ¾õ¶·¤ò¹¹¿·¤·¡¢doInBackground¤Ç¤Î½èÍý¿Ê¹Ô¾õ¶·¤Ë±þ¤¸¤ÆpublishProgress¥á¥½¥Ã¥É¤òŬµ¹¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É½èÍý¤Î¿ÊĽ¤Ë±þ¤¸¤¿É½¼¨¤¬¹Ô¤¨¤Þ¤¹¡£
2-7. ¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤ÎÁ«°Ü †¡¡¤³¤³¤«¤é¤ÏFFind¤Î²þ½¤¤ò¹¹¤Ë¿Ê¤á¤Æ¡¢¸¡º÷·ë²Ì¤òÊÌ¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤Ëɽ¼¨¤·¡¢·ë²Ìɽ¼¨¤â¥ê¥¹¥È¥Ó¥å¡¼¤ò»ÈÍѤ·¤¿Êª¤ËÀ°¤¨¤Æ¤¤¤¤Þ¤¹¡£ ¡¡¤Þ¤º¤Ï·ë²Ìɽ¼¨ÍѤΥ¢¥¯¥Æ¥£¥Ó¥Æ¥£¤òÍÑ°Õ¤·¤Þ¤¹¡£Eclipse¤ÎPackage Explorer¤ÇFFind¤ò¥¯¥ê¥Ã¥¯¤·¤ÆÁªÂò¤·¡¢¥á¥Ë¥å¡¼¤«¤é¡ÖFile > New > Class¡×¤òÁªÂò¤·¤Þ¤¹¡£¥¯¥é¥¹ºîÀ®¥À¥¤¥¢¥í¥°¤¬É½¼¨¤µ¤ì¤¿¤é¡¢Package¤Ë¡Öcom.beatcraft.ffind¡×¡¢Name¤Ë¡ÖResultActivity¡×¡¢Superclass¤Ë¡Öandroid.app.Activity¡×¤ÈÆþÎϤ·¤Æ¡ÖFinish¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ ¡¡ºîÀ®¤µ¤ì¤¿ResultActivity.java¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤·¤Æ³«¤¡¢onCreate¥á¥½¥Ã¥É¤ò¼ÂÁõ¤·¤Æ¤¤¤¤Þ¤¹¡Ê¥ê¥¹¥È2-16¡Ë¡£Bundle¥¯¥é¥¹¤ò»ÈÍѲÄǽ¤Ë¤¹¤ë¤¿¤á¡¢android.os.Bundle¥Ñ¥Ã¥±¡¼¥¸¤Î¥¤¥ó¥Ý¡¼¥È¤â¹Ô¤Ê¤Ã¤Æ²¼¤µ¤¤¡£
¡¡Â³¤¤¤Æ¤³¤Î¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤Ç»ÈÍѤ¹¤ë¥ì¥¤¥¢¥¦¥È¡ÊR.layout.result¡Ë¤òºîÀ®¤·¤Þ¤¹¡£FFind¤ò¥¯¥ê¥Ã¥¯¤·¤ÆÁªÂò¤·¡¢¥á¥Ë¥å¡¼¤«¤é¡ÖFile > New > Other...¡×¤òÁªÂò¤·¤Þ¤¹¡£"Select a wizard"¥À¥¤¥¢¥í¥°¡Ê¿Þ2-9¡Ë¤¬É½¼¨¤µ¤ì¤¿¤é¡¢¡ÖAndroid > Android XML Layout File¡×¤òÁªÂò¤·¤Æ¡ÖNext¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ²¼¤µ¤¤¡£ ¿Þ2-9
¡¡Â³¤¯"New Android Layout XML File"¤ÇFile¤Ë¡Öresult.xml¡×¤ÈÆþÎϤ·¡¢¡ÖFinish¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¥ì¥¤¥¢¥¦¥È¥ê¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£ ¿Þ2-10
¡¡ÇÛÃÖ¤·¤¿¥ê¥¹¥È¥Ó¥å¡¼¤Î¥×¥í¥Ñ¥Æ¥£¤ò°Ê²¼¤Î¤è¤¦¤ËÀßÄꤷ¤Þ¤¹¡£
¡¡°Ê¾å¤ÇResult¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤Î¥ì¥¤¥¢¥¦¥ÈºîÀ®¤Ï´°Î»¤Ç¤¹¡£Outline¤¬°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ²¼¤µ¤¤¡£ ¡¡¡¦LinearLayout ¡¡Result¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤Î¼ÂÁõ¤ò¿Ê¤á¤ëÁ°¤Ë¡¢FFindActivity¤Î½¤Àµ¤ò¹Ô¤¤¤Þ¤¹¡£FFindActivity¤Ç¤Ï·ë²Ìɽ¼¨¤ò¹Ô¤ï¤Ê¤¯¤Ê¤ë¤¿¤á¡¢¤Þ¤º¤Ï¥ì¥¤¥¢¥¦¥Èmain¤«¤éResult¥Æ¥¥¹¥È¥Ü¥Ã¥¯¥¹¤òºï½ü¤·¤Þ¤¹¡£ ¡¡¼¡¤ËFFindActivity.java¤ò³«¤¡¢¸¡º÷¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤µ¤ì¤¿ºÝ¤Î½èÍý¤òÊѹ¹¤·¤Þ¤¹¡Ê¥ê¥¹¥È2-17¡Ë¡£
¡¡FindTask¤òÀ¸À®¤·¡¢¸¡º÷½èÍý¤ò¼Â¹Ô¤·¤Æ¤¤¤¿²Õ½ê¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡£Intent¤Ï¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤ä¥¢¥×¥ê¥±¡¼¥·¥ç¥ó´Ö¤Ç¾ðÊó¤ò¤ä¤ê¼è¤ê¤¹¤ë¤¿¤á¤Î¥á¥Ã¥»¡¼¥¸¥ª¥Ö¥¸¥§¥¯¥È¡Ö¥¤¥ó¥Æ¥ó¥È¡×¤ò¼è¤ê°·¤¦¥¯¥é¥¹¤Ç¡¢¤³¤³¤Ç¤ÏFFindActivity¤«¤éResultActivity¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤Ë»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£ÆóÈÖÌܤΰú¿ô¤Ë¡Öcom.beatcraft.ffind.ResultActivity.class¡×¤ÈÅϤ¹¤³¤È¤Ç¡¢¤³¤Î¥¤¥ó¥Æ¥ó¥È¤ÎÁ÷¿®Àè¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤Æ¤¤¤Þ¤¹¡£ ¡¡¤³¤ì¤Þ¤ÇFFindActivity¤Ç¹Ô¤Ê¤Ã¤Æ¤¤¤¿¸¡º÷½èÍý¤È·ë²Ìɽ¼¨¤ÏResultActivity¤Ç¹Ô¤¦¤¿¤á¡¢°Ê²¼¤Î¥á¥ó¥ÐÊÑ¿ô¤È3¤Ä¤Î¥á¥½¥Ã¥É¤òFFindActivity¤«¤é¤Ïºï½ü¤·¡¢ResultActivity¤Ë°ÜÆ°¤·¤Þ¤¹¡£FFindActivity¤ÎonCreate¤Ç¹Ô¤Ê¤Ã¤Æ¤¤¤¿mList¤ÎÀ¸À®½èÍý¤ÈString¥á¥ó¥ÐÊÑ¿ômResult¤âÉÔÍפȤʤ뤿¤á¤¢¤ï¤»¤Æºï½ü¤·¤Æ²¼¤µ¤¤¡£ private ArrayList<String> mList; public void listFile(String target) public void result() private void listFile(String target, String folder, ArrayList<String> list) ¡¡¤³¤ì¤ÇFFindActivity.java¤Î½¤Àµ¤Ï´°Î»¤Ç¤¹¡£Â³¤¤¤ÆResultActivity.java¤ò³«¤¡¢É¬ÍפʽèÍý¤ÎÄɲäÈFFindActivity¤«¤é°Ü¿¢¤·¤¿¥á¥½¥Ã¥É¤Î½¤Àµ¤ò¹Ô¤¤¤Þ¤¹¡£ ¡¡¤Þ¤º¤ÏonCreate¤ò½¤Àµ¤·¤Þ¤¹¡£setContentView¸Æ¤Ó½Ð¤·¤Î¤¢¤È¤Ë¡¢¼¡¤ÎÆâÍƤòÄɲä·¤Þ¤¹¡Ê¥ê¥¹¥È2-18¡Ë¡£
¡¡ºÇ½é¤ËFFindActivity¤«¤é°ú¤·Ñ¤¤¤ÀArrayList¤ÎÀ¸À®¤ò¹Ô¤Ê¤Ã¤¿¤¢¤È¡¢Â³¤¯getIntent¥á¥½¥Ã¥É¤Ç¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¸Æ¤Ó½Ð¤·»þ¤ËÁ÷¿®¤µ¤ì¤¿¥¤¥ó¥Æ¥ó¥È¤ò¼èÆÀ¤·¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥¤¥ó¥Æ¥ó¥È¤«¤é¸¡º÷¥¡¼¥ï¡¼¥É¤ò¼õ¤±¼è¤ë¤¿¤á¡¢¤ß¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ïfinish¥á¥½¥Ã¥É¤Ç¤³¤Î¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤ò½ªÎ»¤µ¤»¤Þ¤¹¡£ ¡¡FindTask¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤ëlistFile¤Ïprivate¤ÎlistFile¥á¥½¥Ã¥É¤Î¤ß¤ËÊѹ¹¤·¤Þ¤¹¡Ê¥ê¥¹¥È2-19¡Ë¡£
¡¡result¥á¥½¥Ã¥É¤Ç¤Ï·ë²Ì¤ÎÀßÄê¤òEditText¤«¤éListView¤Îʪ¤ØÊѹ¹¤ò¹Ô¤¤¤Þ¤¹¡Ê¥ê¥¹¥È2-20¡Ë¡£
¡¡ListView¤Ï¥¢¥À¥×¥¿¡¼¤È¸Æ¤Ð¤ì¤ë¥¯¥é¥¹¤Ç¥ê¥¹¥È¥Ç¡¼¥¿¤È·ë¤ÓÉÕ¤±¤é¤ì¤Þ¤¹¡£¥¢¥À¥×¥¿¡¼¤Ë¤Ï¤¤¤í¤¤¤í¤Ê¼ïÎब¤¢¤ê¤Þ¤¹¤¬¡¢¤³¤³¤Ç¤Ïʸ»úÎóÇÛÎó¤ò¼è¤ê°·¤¦¤¿¤á¡¢ÇÛÎóÍÑ¥¢¥À¥×¥¿¡¼¤Î¥Æ¥ó¥×¥ì¡¼¥È¥¯¥é¥¹ArrayAdapter¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£ ¡¡ºÇ¸å¤ËFindTask.java¤ò³«¤¡¢FFindActivity¤È¤Ê¤Ã¤Æ¤¤¤ë²Õ½ê¤òÁ´¤ÆResultActivity¤Ë½ñ¤´¹¤¨¤ì¤Ð¥½¡¼¥¹¥³¡¼¥É¤Î½¤Àµ¤Ï´°Î»¤Ç¤¹¡£ ¡¡»Ä¤ëºî¶È¤Ï¥Þ¥Ë¥Õ¥§¥¹¥È¤Î½¤Àµ¤Ç¤¹¡£Äɲä·¤¿ResultActivity¤òÍøÍѲÄǽ¤Ë¤¹¤ë¤Ë¤Ï¡¢¥Þ¥Ë¥Õ¥§¥¹¥È¤Ç¤³¤ì¤òÀë¸À¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£Package Explorer¤«¤éAndroidManifest.xml¤ò³«¤¡¢FFindActivity¤òÀë¸À¤·¤Æ¤¤¤ëactivityÍ×ÁǤΤ¢¤È¤Ë°Ê²¼¤òÄɲä·¤Þ¤¹¡Ê¥ê¥¹¥È2-21¡Ë¡£
¡¡°Ê¾å¤ÇÁ´¤Æ¤Î½¤Àµ¤¬´°Î»¤·¤Þ¤·¤¿¡£Áᮼ¹Ԥ·¤Æ¤ß¤Þ¤·¤ç¤¦¡Ê¿Þ2-11¡Ë¡£ ¿Þ2-11
2-8. FFindÁ´¥½¡¼¥¹¥³¡¼¥É/XML¥Õ¥¡¥¤¥ë †
ÆâÆ£
|