package COM.TQC.GDD02;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class GDD02 extends Activity {
public static final String PREF_NAME = "GDD02_PREF";
public static final String key01 = "key01";
public static final String key02 = "key02";
public static final String key03 = "key03";
// 加入以下的 constant
public static final int MODE_WORLD_WRITTABLE = 0;
private EditText EditText01;
private EditText EditText02;
private EditText EditText03;
// 多加入一個 button 宣告
private Button bt;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 取出所有元件
EditText01 = (EditText) findViewById(R.id.editText1);
EditText02 = (EditText) findViewById(R.id.editText2);
EditText03 = (EditText) findViewById(R.id.editText3);
bt = (Button) findViewById(R.id.button1);
// 由 SharedPreferencs 取出內容,
SharedPreferences st = getSharedPreferences(PREF_NAME,0);
String value01 = st.getString(key01, "");
String value02 = st.getString(key02, "");
String value03 = st.getString(key03, "");
// Assigne 至 EditText 內
EditText01.setText(value01);
EditText02.setText(value02);
EditText03.setText(value03);
// button 指定 OnClickListener
// 背下這個語法
bt.setOnClickListener(new Button.OnClickListener()
{
// 沒有 @Override
// 記得用 public void
public void onClick(View v)
{
finish();
}
}
);
}
// 記得用 @Override
// 得要用 protected void
// 同時要作 super.onStop();
@Override
protected void onStop() {
super.onStop();
SharedPreferences st = getSharedPreferences(PREF_NAME,MODE_WORLD_WRITTABLE);
SharedPreferences.Editor editor = st.edit();
editor.putString(key01, "" + EditText01.getText());
editor.putString(key02, "" + EditText02.getText());
editor.putString(key03, "" + EditText03.getText());
editor.commit();
}
}
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>
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); ==> 啟動
}
補充說明.
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]
----------------------------------------------------------
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 上面有該公司新的電池產品,可以上去看看.
內附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.各項資源整理
2.工作經歷整理及分享.
3.照片分享.
4.PDA使用心得分享.
5.學習筆記.
LINUX
DELPHI
ASP
AJAX
JAVA
SQL SERVER
6.實用工具整理.
7.MIS經驗談.
8.各項資源整理
訂閱:
文章 (Atom)