2011年11月25日 星期五

Android 學習筆記(GDD01解題)

1. main.xml  使用 AbsoluteLayout放入以下元件:
textView1 取用 strings   的 title. ==> 計算你/妳的BMI值
textView2 取用 strings 的 text3 ==> 男性/女性
textView3 取用 strings 的 text1 ==> 身高(m):
textView4 取用 strings 的 text2 ==> 體重(kg):

height(EditText)
weight(EditText)
button1  直接在 text輸入'計算'

RadioGroup (horizontal)下放入兩個RadioButton text 分別為男性(male)及女性(female),
男性的RadioButton要Checked="true"

2. 實作  GDD01.java 的 onClick 事件

  //從輸入介面中取出了的身高、體重值,要將身高、體重值傳送給 child_Activity 後作計算
 
   etheight = (EditText) findViewById(R.id.height);
   double height = Double.parseDouble(etheight.getText().toString());
  
         etweight = (EditText) findViewById(R.id.weight);
         double weight = Double.parseDouble(etweight.getText().toString());
        
         String Sex="";
           rb1 = (RadioButton)findViewById(R.id.male);
           rb2 = (RadioButton)findViewById(R.id.female);
        
         if (rb1.isChecked())
         {
          Sex = "M";
         }
         else
         {
          Sex = "F";
         }
        //這些附加在 Intent 上的訊息都儲存在 Bundle 物件中
   
         Intent intent = new Intent();
         intent.setClass(GDD01.this, GDD01_child.class); ==> 注意裡使用  intent.setClass()

         Bundle b = new Bundle();
         b.putDouble("height", height);
         b.putDouble("weight", weight);
         b.putString("Sex", Sex);

   //透過「intent.putExtras(bundle)」敘述,將「bundle」 物件附加在 Intent 上,隨著 Intent 送出而送出

         intent.putExtras(b);

         startActivityForResult(intent,0); ==> 注意這裡使用 startActivityForResult(intent,0)
        
3. GDD01_child.java 要實在三個Function
BMI格式化 / 取得 BMI / 依 BMI取得建議值. 
BMI 格式化 使用 JAVA 的 DecmialFormat 功能.

private String  format(double num)
{
DecimalFormat nf = new DecimalFormat("0.00");
String s = nf.format(num);
return s;
}

計算BMI

private String getBMI(double height, double weight)
{
     double BMI_value = weight / ( height * height);
     String aa = getStrig(R.string.report_result);
     String bb = format(BMI_value);
      return aa + bb;
}



取出建議值
  //依BMI值取得建議
  private String getAdvice (String Sex, double height, double weight)
  {
  double BMI_MAX;
  double BMI_MIN;
  double BMI = weight / ( height * height);
 
  if (Sex.equals("M")){
  BMI_MAX = 25.0;
  BMI_MIN = 20.0;
  }
  else
  {
   BMI_MAX = 22.0;
   BMI_MIN = 18.0;
  }
  if (BMI>BMI_MAX)
  {
   return getString(R.string.advice_heavy);
  }
  else if (BMI<BMI_MIN)
  {
   return getString(R.string.advice_light);
  }
  else
  {
   return getString(R.string.advice_average);
  }
  
  }

4. 在 androidManifest.xml
內要加上 GDD01_child 的activity , 差點忘了! 重要
<activity android:name="GDD01_child"></activity>
      

2011年11月24日 星期四

Android 學習筆記(GDD03解題)

GDD03 解題重點:

補充說明.
GDD03_child 由原圖換另一張圖.


1. image.xml 加 一個 ImageView ID定為  ImageView01. 同時將圖片拉進去.
2. AndroidManifest.xml 加入以下設定:  (記得用操作才不會放錯位置 )
    加入一個 uses permission :
    <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
    加入一個 Activity
        <activity android:name="Image"></activity>
    加入一個 receiver ( 內含一個 SMS_RECEIVED的  intent-filter )
        <receiver android:name="SMSreceiver">
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
            </intent-filter>
        </receiver>
3. 實作  receiver  內的  onReceive()事件.

public void onReceive(Context context, Intent intent)
   {
  
    Intent i = new Intent(context,Image.class);  ==> 由context 轉至  Image.class
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  ==> 是產生一個新的TASK
    context.startActivity(i); ==> 啟動
   
   
   
   }

2011年11月23日 星期三

SQL 改欄位大小, 又遇到個小鐵板

分類: SQL 程式開發
2011/11/23 15:00



原本想說把某個欄位大小由24 改為25 , 應該是個小事情, 結果一作才發現又是"鐵板"一塊.
原因是這些欄位有可能在不同的TABLE 會互相作關聯, 同時也有可能是PRIMARY KEY.
不得己, 改用SQL 語法,見招拆招:
1.這種情況最好了,
----------------------------------------------------------------------------------
alter table DJ_TABLE ALTER COLUMN ABC CHAR(25)
因為沒有任何限制
----------------------------------------------------------


2.下面這個就有點麻煩, 因為是個FOREIGH KEY 的欄位
作法:
先把這個 FOREIGN KEY DROP 掉
再調整欄位大小
最後再把 FOREIGH KEY ADD回去
----------------------------------------------------------

ALTER TABLE VOY DROP  CONSTRAINT [IX_ABC]
alter table  ABC_TABLE  ALTER COLUMN ABC_COLUMN  CHAR(25)
alter table ABC_TABLE  ADD CONSTRAINT [IX_ABC] UNIQUE NONCLUSTERED
(
 [ABC_COLUMN] ASC,
 [DEF_COLUMN] ASC,
 [GHI_COLUMN] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 90) ON [PRIMARY]
----------------------------------------------------------

3.最後這毎更麻煩, 因為是個PRIMARY KEY 的欄位
作法:
先把這個 FOREIGN KEY DROP 掉
再調整欄位大小 , 記得要作 NOT NULL , 因為 PRIMARY KEY
最後再把 PRIMARY KEY ADD回去

----------------------------------------------------------
alter table V_TABLE DROP  CONSTRAINT [PK_V_TABLE]
alter table V_TABLE ALTER COLUMN NAME CHAR(25) NOT NULL
alter table V_TABLE ADD  CONSTRAINT [PK_V_TABLE] PRIMARY KEY CLUSTERED
(
 [CODE] ASC,
 [NAME] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 90) ON [PRIMARY]
----------------------------------------------------------

喔,喔很久沒回來用了, 可能要開始用這個blog了

喔,喔很久沒回來用了, 可能要開始用這個blog了

2007年8月6日 星期一

960807電力銀行測試及使用結果

士林電機 電力銀行 網路及一般市價 799 , 台糖量販作促銀 580 ,買了一個.

內附4顆 1000mah aaa電池, 可以使用 usb充電 (有附轉接線) 約要3小時才充飽.

可切換成 usb 供電功能 ,接上己快沒電的 PDA (MIO 339) 發現真的有在充電,效果還不錯.

早上聯絡到士電的李先生,建議:
電池是否有電可以利用電壓來CHK
一般電池電壓 標明是 1.2V,在電力充足情形下,其電壓應在 1.3或1.4V, 帀而當電力快沒時,其電壓會降至 1.1V以下,這時應停止使用該電池,以免充電池壽命減短.
故建議,電力銀行在要用之前,應先行充飽再帶出使用.(因為該電池會有自放電的情形產生,故一陣子沒用,其電力會自行流失)
但李先生有告知該公司有在推一個新的電池,其放電效果不會很明顯,將來可以更換成這種電池,那就可以充飽電力後,放著備用.
對了這個電力銀行還可以拿來當手電筒,相當實用.
李先生還給了一個網站,可供參考.
www.xdendee.com 上面有該公司新的電池產品,可以上去看看.

2007年8月5日 星期日

想要整理的內容

1.士林電的 電力銀行使用心得.
2.工作經歷整理及分享.
3.照片分享.
4.PDA使用心得分享.
5.學習筆記.
  LINUX
DELPHI
ASP
AJAX
JAVA
SQL SERVER
6.實用工具整理.
7.MIS經驗談.
8.各項資源整理

2007年6月17日 星期日

MySQL ODBC 中文問題之解(big5)

由於公司的政策,致使公司的系統要轉向MySQL + JAVA,這兩天就在測試MySQL +ODBC ,結果發現中文出來是亂碼.
經與廠商確認才發現原來,MySQL內定使用 UTF8,而目前中文WINDOWS則是使用 big5碼,造成出來的中文是亂碼.
目前的解決方案是在 MySQL ODBC driver 的option 內加註 SET NAMES big5來解決.暫時解決了這個問題,但仍須進一步作測試才能作確認.