2015年2月8日 星期日

[Android] Android Studio Learn

Android Studio learn
http://stormzhang.com/devtools/2014/11/25/android-studio-tutorial1/

2015年2月6日 星期五

[Android] timer was canceled 閃退錯誤

被網路上的一堆Timer的教程騙了!!
通常Timer幾乎都要配上TimerTask
如果不這麼做的話表示你不用停止Timer
那你就不需要用到TimerTask了

在網路上找資料的時候幾乎都會看到為什麼會閃退
原是就是因為你Timer.cancel後就不能再Timer.schedule了

這裡有很不錯的範例
http://blog.csdn.net/snowdream86/article/details/7072530


再貼上他比較簡潔的code
TimerTask timerTask;
Timer timer;
private void startTimer(){ 
if(timer == null){
timer = new Timer();
}
  
if(timerTask == null){
timerTask = new TimerTask() {
@Override
          public void run() {
               sendUpdateIntent(UpdateIntentService.UPDATE_POSITION_TRACKING);
      }
     };
     }
     if(timer != null && timerTask != null ) {
     timer.schedule(timerTask, 1000, 8000);
     }
}



private void stopTimer(){  
if(timer != null){
timer.cancel();
timer = null;
}
if(timerTask != null){
timerTask.cancel();
timerTask = null;
}
}

2015年1月28日 星期三

[Android] handle message

private Handler mhandler = new Handler( new Callback() {
@Override
public boolean handleMessage(Message msg) {
// TODO Auto-generated method stub
Bundle b = (Bundle)msg.obj;
// b.getString(key);
System.out.println("msgmsgmsg..." + msg.what);
switch(msg.what){
                           case 1:
                                     break;
                         }
                  return false;
       });



Message message2 = mhandler.obtainMessage();
Bundle mhandlerBundle = new Bundle();
message2.what = 0;
message2.obj = mhandlerBundle;
mhandler.sendMessage(message2);


傳值更新ui

2015年1月15日 星期四

[Android] Viewpager

寫得還不錯的教學

viewpager2

可能會遇到的問題
如果放在Fragment下的話就會出現奇怪的bug
比如果第一頁不見之類
因為本身在上面就是Fragment
然後ViewPager裡面的頁數換頁也是Fragment
所以就會造成這樣的問題
修改內容為


List<Fragment> fragments = new ArrayList<Fragment>();
fragments.add(Fragment.instantiate(getActivity(), MeasureChartFragmentBgPage1.class.getName()));
fragments.add(Fragment.instantiate(getActivity(), MeasureChartFragmentBgPage2.class.getName()));
fragments.add(Fragment.instantiate(getActivity(), MeasureChartFragmentBgPage3.class.getName()));

mPagerAdapter = new PagerAdapter(getChildFragmentManager(), fragments);        
ViewPager pager = (ViewPager) view.findViewById(R.id.viewpager);
pager.setAdapter(mPagerAdapter);


參考網址:http://www.javaexperience.com/android-viewpager-example-tutorial/


bug參考網址:http://blog.csdn.net/wangjia55/article/details/9625747

2015年1月13日 星期二

[Android] EditText只顯示到小數第一位

                //thisis EditText
            public void afterTextChanged(Editable edt)
            {
                String temp = edt.toString();
                int posDot = temp.indexOf(".");
                if (posDot <= 0) return;
                if(temp.length() - posDot - 1 > 1)
                {
                edt.delete(posDot +2, posDot+3);
               
                }
            }

2015年1月7日 星期三

[Android] TTS google 語音報時

支援很多語言:很多包含中文

參考網址: http://www.tutorialspoint.com/android/android_text_to_speech.htm
下載地址: https://drive.google.com/open?id=0B2WSxYpFVHkad3Z4SHM2ZU9aV1E&authuser=0

2014年12月24日 星期三

[Android] 在XML設計點擊效果

            <ToggleButton
                android:id="@+id/week1"
                style="@style/geo_fence_week_btn_2"
                android:text="@string/fence_week_1" />

style_custom.xml
      <style name="geo_fence_week_btn_2">
        <item name="android:layout_width">0dp</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_marginRight">2dp</item>
        <item name="android:layout_weight">1</item>
        <item name="android:textColor">@color/geo_fence_week_btn_2_textcolor_selector</item>
        <item name="android:background">@drawable/geo_fence_week_btn_2_bgcolor_selector</item>
    </style>

geo_fence_week_btn_2_bgcolor_selector.xml
    <item android:state_checked="true" android:state_pressed="false">
        <shape android:shape="rectangle">
            <padding android:left="3dp" android:top="3dp" android:right="3dp" android:bottom="3dp"/>
            <solid android:color="#fffcce01"/>
        </shape>
    </item>
    <item android:state_checked="false" android:state_pressed="false">
        <shape android:shape="rectangle">
            <padding android:left="3dp" android:top="3dp" android:right="3dp" android:bottom="3dp"/>
            <solid android:color="#ff939393"/>
        </shape>
    </item>

還不知道要幹嘛
    <item android:state_checked="true" android:state_pressed="true">
        <shape android:shape="rectangle">
            <padding android:left="3dp" android:top="3dp" android:right="3dp" android:bottom="3dp"/>
            <solid android:color="#ffff"/>
        </shape>
    </item>
    <item android:state_checked="false" android:state_pressed="true">
        <shape android:shape="rectangle">
            <padding android:left="3dp" android:top="3dp" android:right="3dp" android:bottom="3dp"/>
            <solid android:color="#ffff"/>
        </shape>
    </item>