ã¢ããªã±ãŒã·ã§ã³ã®æŠèŠ
ã¹ã¯ãªãŒã³ã·ã§ãããšã¢ããªã±ãŒã·ã§ã³èªäœã¯ãåžå Žã§éåžžã©ãã衚瀺ã§ããŸã-market.android.com/details?id=net.octobersoft.android.civilcabin
ãã®ã¢ããªã±ãŒã·ã§ã³ã䜿çšãããšããæ°ã«å ¥ãã®ã¬ã·ããšæºåæ¹æ³ããã°ããèŠã€ããããšãã§ããŸãïŒããŒã¿ããŒã¹ã«ã¯200ãå°ãè¶ ããã¬ã·ãããããŸãïŒã ããã«ãã¢ã·ã¹ã¿ã³ãã®å©ããåããŠãèŠã€ãã£ãã¬ã·ãã«å«ãŸããæåã®æ°ããã³ãã«ããæã¡ã®è£œåã®ã¬ã·ãããã°ããèŠã€ããããšãã§ããŸãã ãã¹ã±ããã®å©ããåããŠãå¿ èŠãªè£œåãä¿åããããç¬èªã®è£œåãè¿œå ãããã§ããŸãããã®åŸãã¬ã·ãã®æºåãéå§ããã¿ã€ããŒãèšå®ããè¢ããŸããäžããŸãã ã¬ã·ãã衚瀺ãããšãã«ãã¹ã±ããã«ææãè¿œå ã§ããŸãïŒã¬ã·ãã®ã«ããŽãªãšå¥œã¿ã®ã¬ã·ããéžæããåŸã®æåã®ã¿ãã§ïŒããã¹ã±ããã«è¿œå ãããæ°è£œåã¯ãã¢ã·ã¹ã¿ã³ãã«ä»ã®å šå¡ãšãšãã«è¡šç€ºãããŸãã ãããŠãã¡ããããæ°ã«å ¥ãã®ã¬ã·ãããã¹ãŠãæ°ã«å ¥ãã«ä¿åããŠããã°ããã¢ã¯ã»ã¹ã§ããŸãã ãã¹ãŠã®ã¬ã·ããéžæãããšãæ€çŽ¢ããŒã衚瀺ãããç®çã®ã¬ã·ãããã°ããèŠã€ããããšãã§ããŸãã ããªãã®ãæ°ã«å ¥ãã®æçãäœãã®ã«åœ¹ç«ã€ãã®ãããªäŸ¿å©ãªã¢ããªã±ãŒã·ã§ã³ã
ã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ãéããªãæŽæ°ãããFacebookãTwitterãVKontakteãããã³ãã®ä»ã®ããã€ãã®ç¹å žãä»ããŠãã¢ããªã±ãŒã·ã§ã³ã®äœ¿çšã«é¢ããæèŠãåéãšå ±æã§ããããã«ãªããŸãã
ãã°ã«æ°ã¥ããããã³ã¡ã³ããã¡ãŒã«ã§ããã«ã€ããŠæžããŠãã ããã
éçºã å°é£ãšå¯èœãªè§£æ±ºç
ã¿ããšè€æ°ã®ãŠã£ã³ããŠ
ãæ°ã¥ããããããŸããããã¢ããªã±ãŒã·ã§ã³å ã®ããã²ãŒã·ã§ã³ã¯ã¿ãã䜿çšããŠå®è¡ãããŸãã ããããå€ãã®ã¿ãã«ã¯è€æ°ã®ãŠã£ã³ããŠããããŸãã é·ç§»äžã«å®è¡äžã®ãŠã£ã³ããŠãã¯ãªãŒãã³ã°ããªããšããã¥ãŒã®éå±€ã«ãã£ãŠèš±å®¹å€ãå¢å ããã¢ããªã±ãŒã·ã§ã³ããããããããšããäºå®ã«åé¡ããããŸãã ãããè¡ãã«ã¯ãTabActivityïŒãã¹ãŠã®ã¿ããããã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³ãŠã£ã³ããŠãç¶æ¿ããïŒããç¶æ¿ããç¬èªã®ã¯ã©ã¹ãäœæããå¿ èŠã«å¿ããŠonBackPressedïŒïŒããªãŒããŒã©ã€ãããããé·ç§»æã«èªåã§finishïŒïŒãåŒã³åºããŸãã
ãŸãã1ã€ã®ã¿ãã®å€èŠ³ã®ã«ã¹ã¿ãã€ãºã«åé¡ããããŸããã å®éãããã«ã¯è€éãªããšã¯äœããããŸããããã¥ãŒã䜿çšããŠã¬ã€ã¢ãŠããäœæããã¿ãã«æž¡ãããšã§å¥œããªããã«ã¹ã¿ã€ã«ãèšå®ããŸãã
掻åç¶æ
äžéšã®èè ã«ãããšãã»ãšãã©ã®å ŽåïŒããã³ã»ãšãã©å¿ èŠãªãã¹ãŠïŒãonCreateïŒåç¬ã§ïŒãonStartïŒïŒãããã³onPauseïŒïŒã®ç¶æ ã䜿çšãããŸãã ã¯ãã確ãã«ããã§ãããã¢ããªã±ãŒã·ã§ã³ã§ã¯ãã¿ã€ããŒãããã¯ã°ã©ãŠã³ãã§åäœãããŠã£ã³ããŠãç Žæ£ããããšïŒonDestroyïŒïŒãåŒã³åºããããšãã¢ããªã±ãŒã·ã§ã³ã®èµ·åæã«åéã§ããããã«ç¶æ ãããŒã¹ã«ãªã»ããããŸãïŒã Pro Android 2ã®äœè ã¯ããã®ã¡ãœãããonStopïŒïŒãªã©ã®ãã¹ãŠã§åŒã³åºããããšã¯éããªããšäž»åŒµããŠããããã泚æããŠãŠã£ã³ããŠã®ã©ã€ããµã€ã¯ã«ã培åºçã«ç 究ããŠãã ããã åé¡ã解決ããããã®ãªãã·ã§ã³ãšããŠãã¿ã€ããŒçšã®ãµãŒãã¹ãäœæã§ããŸãããä»ã®ãµãŒãã¹ãçºçããå¯èœæ§ããããŸãã
ã°ã©ããŒã·ã§ã³ç»å
ã¢ããªã±ãŒã·ã§ã³ã®äžéšã®ç»åã«ã¯ã°ã©ããŒã·ã§ã³ãå«ãŸããŠãããããã©ã«ãã§ã¯ïŒå°ãªããšãç§ã®ãšãã¥ã¬ãŒã¿ãŒãšå®éã®ããã€ã¹ã§ã¯ïŒã°ã©ããŒã·ã§ã³ãã¹ãã©ã€ãã«ãŒãããŠãããäžæ°å³ã«èŠããŸãã çµå±ã®ãšãããåé¡ã®è§£æ±ºçã¯ç°¡åã§ãããŠã£ã³ããŠãã¬ãããèšå®ããŸãã ã¡ãœããã«æ¬¡ã®è¡ãè¿œå ããŠonAttachedToWindowïŒïŒã¢ã¯ãã£ããŒã·ã§ã³ã¡ãœããããªãŒããŒã©ã€ãããããšã«ããããããè¡ãããšãã§ããŸãã
super.onAttachedToWindow(); // !
Window currWind = getWindow();
currWind.setFormat(PixelFormat.RGBA_8888);
ãã³ãã©ãŒãå¿ããªãã§ãã ãã
UIã¹ããªãŒã ã«äœãã衚瀺ããå¿ èŠããããã¢ã¯ãã£ããŒã·ã§ã³ã®ã³ã³ããã¹ãã«ãªãå ŽåïŒããã¯ç¢ºãã«Androidã®æ¹æ³ã§ã¯ãããŸããïŒããã®ã¯ã©ã¹ãåé¿ããããšã¯ã§ããŸããã å¥ã®ãªãã·ã§ã³ã¯ãAsyncTaskã䜿çšããããšã§ãã ãã®ã¯ã©ã¹ã䜿çšããããã®ãªãã·ã§ã³ã¯ä»ã«ããããããããŸãïŒããšãã°ãUIèŠçŽ ãæŽæ°ããã¹ã¬ããã®ãã¥ãŒïŒã
ããã°ã©ã ã«ããããŒããŒãã€ãã³ãåŒã³åºã
å Žåã«ãã£ãŠã¯ãããã¯å¿ èŠã«ãªãããšããããããšãã°æ¬¡ã®ããã«è§£æ±ºãããŸãã
æ°ããBaseInputConnectionïŒtxtViewãfalseïŒ.sendKeyEvemtïŒbackPressedKeyEventïŒ;
ä»ã«ãæ¹æ³ã¯ãããšæããŸãããäžèšã®ã³ãŒãã¯æ€çŽ¢ã倱æããåŸãåã®ãŠã£ã³ããŠã«æ»ãã®ã«åœ¹ç«ã¡ãŸããã
SQLiteãã£ãã·ã¥
SQLiteã¯ããŒã¿ããã£ãã·ã¥ããŸãã ã¢ããªã±ãŒã·ã§ã³ã®éçºäžã«ãããèŠããŠããŠãŒã¶ãŒããŒã¿ã®æ¶å»ããã¯ã¹ããªã³ã«ããã ãã§ãïŒããŒã¿ãæŽæ°ããå ŽåïŒã äžåºŠãç§ã¯ãã®æ©èœãç¥ããã«ããªããããªã®ããç解ããã®ã«æ°æéãè²»ãããŸããã
ãªã¹ã
ListActivityããç¶æ¿ãããã©ãã å®éãå¯äžã®éãã¯ããŠã£ã³ããŠãã¶ã€ã³ã§ä»ã®èŠçŽ ãšã¬ã€ã¢ãŠãèªäœãå¿ èŠãã©ããã§ãã ã¯ãã®å Žåãç¶æ¿ãšã¯é¢ä¿ãããŸãããç¶æ¿ããŠããªãå Žåãã¯ã©ã¹ãšsetContentViewãåŒã³åºãå¿ èŠã¯ãããŸããã
ãŸãããªã¹ãã«ã€ããŠéèŠãªããšã1ã€èŠããŠããå¿ èŠããããŸãã ãªã¹ãã¯ãã¥ãŒèŠçŽ ãç¹°ãè¿ã䜿çšãããããæ éã«äœæ¥ããå¿ èŠããããŸãã ããšãã°ããã¥ãŒã¡ãœããsetTagïŒïŒãgetTagïŒïŒã䜿çšããŠãä»»æã®èå¥åããã€ã³ãã§ããŸãã äžèšã§æžããããã«ãã«ã¹ã¿ã ã¢ããã¿ãŒã®èšè¿°ãšgetViewïŒïŒã¡ãœããã§convertViewãã©ã¡ãŒã¿ãŒã®äœ¿çšãæ éã«æ€èšããå¿ èŠããããŸãã
ãªã¹ããæäœãããšãã®å¥ã®åé¡ã¯ãScrollViewã§ã®ãªã¹ãã¢ã€ãã ã®èª€ã£ã衚瀺ã§ããã
ã¬ã€ã¢ãŠãã«ã¯æ¬¡ã®éšåãå«ãŸããŸãã
...
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:src="@drawable/icon"
android:id="@+id/recipe_img"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:adjustViewBounds="true"
android:layout_weight="0"/>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="none"
android:divider="#00000000"
android:cacheColorHint="#00000000" />
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="2"
android:gravity="center"
android:scaleType="fitXY"
android:src="@drawable/cook"/>
...
ãã®èšèšãªãã·ã§ã³ã§ã¯ããªã¹ãã®èŠçŽ ãåãæšãŠããããã¹ãŠã衚瀺ãããããã§ã¯ãããŸããïŒç§ã®æèŠã§ã¯ãGoogleã³ãŒãã«ã¯ãã®ãããªåé¡ããããŸãïŒ
ãã®åé¡ã®è§£æ±ºçã¯ããªã¹ãå ã®èŠçŽ ã®æ°ã§ãªã¹ãã®ãµã€ãºãèšå®ããããšã§ããã次ã®ã³ãŒãã䜿çšããŸãã
//set ListView size by items count
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
// pre-condition
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}
察話
ïŒDialogã¯ã©ã¹ãç¶æ¿ããŠïŒã«ã¹ã¿ã ãã€ã¢ãã°ãäœæããéã«ãfindViewByIdïŒïŒã§ãã¿ã³ãç°¡åã«èŠã€ããŠæ£åžžã«æ©èœããããEditTextãŠã£ãžã§ããããªãã£ãïŒã¡ãœãããnullãè¿ããïŒãšããé£ãããçããŸããã éåžžãã«ãŒãèŠçŽ ã®æ€çŽ¢ã«ã¯LayoutInflaterã䜿çšãããŸããã 解決çã¯ç°¡åã§ãããDialogã¯ã©ã¹ãäœæããç®çã®ã¬ã€ã¢ãŠããæž¡ããŠããããã€ã¢ãã°ããfindViewByIdïŒïŒãåŒã³åºããŸãã ã¡ãªã¿ã«ããã€ã¢ãã°ã¯çŸåšã®ã¢ã¯ãã£ããã£ã«é¢é£ä»ããããŠãããããè©ŠããŠããªãã£ããããã¢ããªã±ãŒã·ã§ã³ã³ã³ããã¹ããäŒããããšãã§ããŸããã§ããã ããããç§ã¯ãŸã ãã®åé¡ã解決ã§ãããšæããŸãïŒ
è»èŒªãåçºæããªãã§ãã ãã
å€ãã®æ¢è£œã®ã¯ã©ã¹ãšã¢ããªã±ãŒã·ã§ã³ã¯ãã§ã«Androidã«ãããŸãããã®ãããæåã«dockãŸãã¯googleã泚ææ·±ãèŠãããšããå§ãããŸãã
LogCatã䜿çšãã
ãã®ã³ã°ã䜿çšãããšãéçºäžã«ïŒç¹ã«Eclipseã§ãã£ã«ã¿ãŒã䜿çšããŠïŒééãããã°ããèŠã€ããŠãã¢ã¯ãã£ããã£ããµãŒãã¹ãªã©ã®å¿ èŠãªåºåã衚瀺ã§ãããããåžžã«ããã䜿çšã§ããŸãã ãã ããããã€ã¹äžã®äžé£ã®æšæºãµãŒãã¹ãšã¢ããªã±ãŒã·ã§ã³ã¯ãŸã ãã°ã«æžã蟌ãŸããŠããŸããããã°ã¯ãªãªãŒã¹ããŒãžã§ã³ããåé€ããå¿ èŠããããŸãïŒGoogleã«ãããšïŒã
SQLite Manager
Firefox 3.xã§ãã®ãã©ã°ã€ã³ã䜿çšããŠãsqliteããŒã¹ãæäœããŸããã ç¡æã§ã䟿å©ã§ãæ©èœçã§ãïŒããã·ãŒãžã£ãèšè¿°ããããããŒãã«æ§é ãããŒã¿ãåç §ããããã¯ãšãªãå®è¡ãããã§ããŸãïŒã ã§ããããéçºã®ããã«ãŸãã«ãããç¥ããªãããŸãã¯åæ§ã®ããŒã«ãéžæããããã¹ãŠã®äººã«ãå§ãããŸãã ããããã®éžæè¢ããããŸããïŒ
ã¢ããªã±ãŒã·ã§ã³ã®ãµã€ãºå¶é
ããã¯æããããããã¢ã€ãã ã§ãã åžå Žã«ãªãªãŒã¹ãããåœæ¥ãŸãã¯1æéã«ãã¢ããªã±ãŒã·ã§ã³ã®ãµã€ãºã50MBãè¶ ããããšã¯ã§ããŸããã ãã®ãããªããããããããšãGoogle ...ãã®ãããç§ã¯æãå¿«é©ãªæ±ºå®ãäžãå¿ èŠããããŸãã...
ã¹ã¯ãªãŒã³ã·ã§ãã
ããã¯ãéžæããã«ããŽãªã®ã¬ã·ããå«ããŠã£ã³ããŠã§ãã
![ç»å](http://habrastorage.org/storage/1f65e0ff/a9bd01a0/0a5096b9/c4f823d8.jpeg)
ãã¹ãŠã®ã«ããŽãªã®ã¬ã·ããå«ãç»é¢ïŒ
![ç»å](http://habrastorage.org/storage/c2fbf6d6/93cd18bb/a17fcc14/568f820b.jpeg)
éžæããã¬ã·ãã®ç»é¢ïŒ
![](http://habrastorage.org/storage/ec736ca7/d28a4da4/01988b51/f0e6da5e.jpeg)
ãããŠããããã¿ã€ããŒãŠã£ã³ããŠã®è¡šç€ºã§ãã
![](http://habrastorage.org/storage/f171ee42/61d46beb/357aa6fb/a88d8a91.jpeg)
ãããã«
ç§ã¯Androidã®ç¬¬äžäººè ã§ã¯ãªãïŒHabréã§ã®åããŠã®ã¢ããªã±ãŒã·ã§ã³ããã³ããŒãã¿ã€ã ã®æåã®æçš¿ã§ãïŒãããæšå¥šäºé ã«ææŠããããšãã§ããããšã匷調ããŸãããã©ãããã©ãŒã ã«ã¯1ã€ã®åé¡ã解決ããããã€ãã®æ¹æ³ããããŸãããç§ãã¬ãã¥ãŒãããã³ãã¯åãã§ããŸãïŒ ç§ã¯çµéšã®äº€æã®åŒã³ãããæ¯æããŸããããã¯ãã§ã«Habréã«ãããŸããã
ãã以å€ã®å Žåãéçºããã»ã¹ã¯Webã¢ããªã±ãŒã·ã§ã³ã®ããã»ã¹ãšäŒŒãŠããŸãããããŒã¿ã¢ãã«ãèšè¿°ããããã®ã¢ãã«ã®CRUDæäœãã€ã³ã¿ãŒãã§ã€ã¹ãããã³å¿ èŠãªæ©èœããããŸãã å°é£ã¯ãAndroidãã©ãããã©ãŒã ãç¥ããªãããšãšãã¢ãã€ã«ãã©ãããã©ãŒã çšã®ã¢ããªã±ãŒã·ã§ã³ãäœæããçµéšããªãããã§ãã
ãã©ã€ããŒãã¡ãã»ãŒãžã®ãããã¯ã«é¢ããã³ã¡ã³ããšææ¡ã
ãæž èŽããããšãããããŸããïŒ
UPDã¢ããªã±ãŒã·ã§ã³ãç¡æçã§å©çšå¯èœã«ãªããŸããïŒ
market.android.com/details?id=net.octobersoft.android.caucasuscabinfree