透過蔡勒公式,我們可以使用年月日的數值算出那天是星期幾。
利用的日曆是西洋曆。
year:年
month:月
date:日
公式如下:
2013/02/06
2013/02/03
Android - Handler activity設定時間後自動跳到另一activity
如何讓 Activity 執行後,可以在一定時間後自動跳到另一個 Activity。
這樣的想法可以使用 Handler 來完成這樣的工作。
我的想法是,當程式執行後先顯示 App 的 Logo 在跳到要使用的功能。
Layout.xml
1. main.xml
2. second.xml
Activity
1. MainActivity.java
2. Second.java
範例:
執行程式時,先執行 MainActivity.java。過了五秒後,自動跳轉到 second.java
MainActivity.java
Second.java
提醒:新增新的 class 別忘了到 AndroidManifest.xml 做適當的修改。
這樣的想法可以使用 Handler 來完成這樣的工作。
我的想法是,當程式執行後先顯示 App 的 Logo 在跳到要使用的功能。
Layout.xml
1. main.xml
2. second.xml
Activity
1. MainActivity.java
2. Second.java
範例:
執行程式時,先執行 MainActivity.java。過了五秒後,自動跳轉到 second.java
MainActivity.java
package com.example.intent5sed;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.content.Intent;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
final Intent mainIntent = new Intent(MainActivity.this, Second.class);
startActivity(mainIntent);
finish(); // 當跳到另一 Activity 時,讓 MainActivity 結束。
// 這樣可以避免使用者按 back 後,又回到該 activity。
}
}, 5000);
}
}
Second.java
package com.example.intent5sed;
import android.app.Activity;
import android.os.Bundle;
public class Second extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
}
}
提醒:新增新的 class 別忘了到 AndroidManifest.xml 做適當的修改。
2013/01/05
Android - DatePicker:如何取得"日期"的資料
資料取得上,除一般透過輸入的資料外,也常會使用到時間的紀錄。
而時間的取得就可以透過 TimePicker 或 DatePicker 來即時取的當下的時間。
當然這時間可以再另做設定,只是透過這樣的方法,使用者在輸入資料的時候。
可以避免資料的輸入手誤或錯誤等等。
範例:
而時間的取得就可以透過 TimePicker 或 DatePicker 來即時取的當下的時間。
當然這時間可以再另做設定,只是透過這樣的方法,使用者在輸入資料的時候。
可以避免資料的輸入手誤或錯誤等等。
範例:
軟體一開啟時,使用 Calendar 取得當下的年月日,並顯示在textDate1。
之後更改 Datepicker 顯示的年月日,系統會觸發 OnDateChangedListener,
之後更改 Datepicker 顯示的年月日,系統會觸發 OnDateChangedListener,
並產生出年月日三個數值是,由於這數值屬性為 int,所以我們另用 DateFix 方法將時間更改為 String。
當然若數字小於 10 ,在數字前面我們就多加個 0。
將取得字串在設定到 TextView1。
另外,透過Button取得 DatePicker 送出來的資料,顯示在另一個 另一個 textDate2 上。
將取得字串在設定到 TextView1。
另外,透過Button取得 DatePicker 送出來的資料,顯示在另一個 另一個 textDate2 上。
圖示:

main_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Date" >
<DatePicker
android:id="@+id/DatePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textData1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text" />
<Button
android:id="@+id/BtnGetDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="63dp"
android:text="取得日期" />
<TextView
android:id="@+id/textData2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text" />
</LinearLayout>
date.java
package com.data;
import java.util.Calendar;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
public class Date extends Activity {
String Year,Mon,Day;
private DatePicker DatePicker;
private TextView textData1;
private TextView textData2;
private Button BtnGetDate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
Calendar TodayDate = Calendar.getInstance(); //透過Calendar取的資料
int sYear = TodayDate.get(Calendar.YEAR); //一開啟軟體即取得年的數值
int sMon = TodayDate.get(Calendar.MONTH) + 1; //一開啟軟體即取得月的數值
//月的起始是0,所以+1.
int sDay = TodayDate.get(Calendar.DAY_OF_MONTH);//一開啟軟體即取得日的數值
//將取得的數字轉成String.
Year = DateFix(sYear);
Mon = DateFix(sMon);
Day = DateFix(sDay);
textData1 = (TextView)findViewById(R.id.textData1);
textData2 = (TextView)findViewById(R.id.textData2);
BtnGetDate = (Button)findViewById(R.id.BtnGetDate);
//一開始就將年月日寫入 textDate1
textData1.setText( Year + "/" + Mon + "/" + Day );
BtnGetDate.setOnClickListener(GDListener);
DatePicker = (DatePicker)findViewById(R.id.DatePicker);
DatePicker.init(TodayDate.get(Calendar.YEAR),TodayDate.get(Calendar.MONTH),
TodayDate.get(Calendar.DAY_OF_MONTH),
//DatePicker年月日更改後,會觸發作以下的事情。
new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
Year = DateFix(year);
Mon = DateFix(monthOfYear + 1); //月的初始是0,所以先加 1。
Day = DateFix(dayOfMonth);
textData1.setText( Year + "/"+Mon+"/"+Day);
}
});
}
//按下Button,將年月日的值,設定到 textData2
private Button.OnClickListener GDListener = new Button.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
textData2.setText(Year+"/"+Mon+"/"+Day);
}
};
//方法DateFix:將傳送進來的年月日轉成String,在判斷是否前面需要加0。
private static String DateFix(int c){
if (c >= 10)
return String.valueOf(c);
else
return "0" + String.valueOf(c);
}
}
2013/01/04
Blog 貼上程式碼:程式碼外圍加框框
http://cw1057.blogspot.tw/2012/07/blogger-format-sample-codes-in-blogs.html?spref=bl
直接在Blog貼上程式碼常有長短不一,格式跑掉的情況。
現在有幾個方法可以改善這樣的情況。
http://formatmysourcecode.blogspot.tw/
將程式加個框框。這樣程式碼就不會亂跑啦~
步驟:
在第一個框框內貼上程式碼,點選Format Text。
第二個框框就出現了套用好的html格式,直接將這格式複製到你自己的Blog上,並在 html 格式上面貼上你也顯示的位置。
第三個框框就是示意圖啦。
直接在Blog貼上程式碼常有長短不一,格式跑掉的情況。
現在有幾個方法可以改善這樣的情況。
http://formatmysourcecode.blogspot.tw/
將程式加個框框。這樣程式碼就不會亂跑啦~
步驟:
在第一個框框內貼上程式碼,點選Format Text。
第二個框框就出現了套用好的html格式,直接將這格式複製到你自己的Blog上,並在 html 格式上面貼上你也顯示的位置。
第三個框框就是示意圖啦。
Android - TimePicker:如何取得時間的資料
資料取得上,除一般透過輸入的資料外,也常會使用到時間的紀錄。
而時間的取得就可以透過TimePicker來即時取的當下的時間。
當然這時間可以再另做設定,只是透過這樣的方法,使用者在輸入資料的時候。
可以避免資料的輸入手誤或錯誤等等。
範例:
使用 Timepicker 顯示的時間,當我們更改時間即會觸發 setOnTimeChangedListener。
產生出來的數值是 int,所以我們另用 TimeFix 將時間更改為 String。
當然若數字小於 10 ,在數字前面我們就多加個 0。
將取得字串在設定到 TextView1。
另外,透過Button取得 TimePicker 送出來的資料,顯示在另一個 TextView 上。
圖示:一個是在 Android 2.3的樣式,一個是 4.1 的樣式。
main.xml
time.java
而時間的取得就可以透過TimePicker來即時取的當下的時間。
當然這時間可以再另做設定,只是透過這樣的方法,使用者在輸入資料的時候。
可以避免資料的輸入手誤或錯誤等等。
範例:
使用 Timepicker 顯示的時間,當我們更改時間即會觸發 setOnTimeChangedListener。
產生出來的數值是 int,所以我們另用 TimeFix 將時間更改為 String。
當然若數字小於 10 ,在數字前面我們就多加個 0。
將取得字串在設定到 TextView1。
另外,透過Button取得 TimePicker 送出來的資料,顯示在另一個 TextView 上。
圖示:一個是在 Android 2.3的樣式,一個是 4.1 的樣式。
main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Time" >
<TimePicker
android:id="@+id/timePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
<Button
android:id="@+id/BtnGetTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textTime1"
android:layout_marginTop="31dp"
android:text="Button" />
<TextView
android:id="@+id/textTime1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/timePicker"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textTime2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/BtnGetTime"
android:layout_toRightOf="@+id/BtnGetTime"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
time.java
package com.example.time;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;
public class Time extends Activity {
private TimePicker timePicker;
private TextView textTime1,textTime2;
private Button BtnGetTime;
String H;
String M;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
textTime1 = (TextView)findViewById(R.id.textTime1); //自動取得時間
textTime2 = (TextView)findViewById(R.id.textTime2); //透過按鈕取得時間
BtnGetTime = (Button)findViewById(R.id.BtnGetTime);
BtnGetTime.setOnClickListener(GTimeListener);
timePicker = (TimePicker)findViewById(R.id.timePicker);
//timepicker時間更改時,執行下面的動作。
timePicker.setOnTimeChangedListener(new OnTimeChangedListener(){
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
//取得 hour的值,透過TimeFix方法。轉換成String.並初始H。
H = TimeFix(hourOfDay);
//取得 minute的值,透過TimeFix方法。轉換成String.並初始M。
M = TimeFix(minute);
//將取得的資料設定到 textTime1
textTime1.setText(H + ":" +M);
}
});
}
private Button.OnClickListener GTimeListener =
new Button.OnClickListener(){
//按下按鈕後將先前Timepicker取得的值 H和M,
//設定到 textTime2
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId())
{
case R.id.BtnGetTime:
{
textTime2.setText(H + ":" +M);
break;
}
}
}
};
//Timepicker取得的資料為int,但時間數字小於10,是不會有像06這樣的情況。
//所以透過TimeFix這個方法將送過來的數字轉換成String,在判斷是否需要加0。
private static String TimeFix(int c){
if (c >= 10)
return String.valueOf(c);
else
return "0" + String.valueOf(c);
}
}
2013/01/03
FileZilla Server 外部網路的設定方式。
由於FileZilla Server FTP 是使用Passive Mode,所以除了一般知道的 20,21 port之外。
也需要另外設定資料傳輸要走的 port。
FileZilla Server設定方式如下:
假設我設定了固定的port 範圍 8000 ~ 8100。
那在對外的Router或防火牆,也需要做這些設定。
在Port Forwarding上設定對外的 port 編號。如圖式~
也需要另外設定資料傳輸要走的 port。
FileZilla Server設定方式如下:
假設我設定了固定的port 範圍 8000 ~ 8100。
那在對外的Router或防火牆,也需要做這些設定。
不想花錢,家裡剛好用的是中華電信附的ZyXEL。
那就照著做就對了。在Port Forwarding上設定對外的 port 編號。如圖式~
如果你剛好用的是Windows 內建的防火牆,那務必記得設定FileServer的程式可以通過網路喔。
C:\Program Files\FileZilla Server\FileZilla server.exe
很簡單吧。
訂閱:
文章 (Atom)
-
mac 還原的方法. 這邊要提到的是還原到出廠的預設系統. 以我自己的 macbook air 13 為例. 按下電源的時候同時按下 command + R,稍等一回後,畫面會出現地球的圖示. 過一回後,會要求連線無線網路。( 看不到無...
-
OS:CentOS 6.5 1. 先更新現有的套件 #yum update 2. 安裝前必要的套件 #yum install gcc make wget httpd gd gd-devel perl* 3. 下載sarg套件並安裝 # wget http:/...
-
os : CentOS 6.5 先更新 yum #yum update 安裝webmin 1.建立下載webmin的位置. #vi /etc/yum.repos.d/webmin. rep o [Webmin] name=Webmin Distributio...









