目標:學習時間日期和時鐘的設置
picker的計算機專業解釋是“選擇器”。
簡單翻譯一下:
timepicker 時間選擇器
datepicker 日期選擇器
analogclock 模擬時鐘
digitalclock 數字時鐘
一、timepicker
1.timepicker使用的監聽器接口是ontimechangedlistener
2.timepicker默認顯示系統當前時間,可以使用setcurrenthour和setcurrentminute兩個方法設置默認顯示時間
3.可使用setis24hourview方法設置timepicker以24小時制顯示
4.獲取timepicker的當前時間,使用getcurrenthour和getcurrentminute兩個方法
模擬器android4.2顯示效果(非24小時制):
真機android2.3.7顯示效果(非24小時制):
真機android2.3.7顯示效果(24小時制):
java代碼:
復制代碼 代碼如下:
package com.haut.a07_timepicker;
import android.app.activity;
import android.os.bundle;
import android.view.menu;
import android.view.view;
import android.view.view.onclicklistener;
import android.widget.button;
import android.widget.timepicker;
import android.widget.timepicker.ontimechangedlistener;
import android.widget.toast;
public class mainactivity extends activity {
private timepicker timepicker;
private button button;
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
timepicker = (timepicker) findviewbyid(r.id.timepickerid);
button = (button) findviewbyid(r.id.buttonid);
// 為timepicker創建監聽器
timepickerlistener timelistener = new timepickerlistener();
timepicker.setontimechangedlistener(timelistener);
// 為button創建監聽器
buttonlistener buttonlistener = new buttonlistener();
button.setonclicklistener(buttonlistener);
// timepicker默認顯示當前時間,可以手動制定它的默認顯示時間
timepicker.setcurrenthour(12);
timepicker.setcurrentminute(0);
// 設置顯示格式為24小時制
timepicker.setis24hourview(true);
}
class timepickerlistener implements ontimechangedlistener {
public void ontimechanged(timepicker view, int hourofday, int minute) {
// 使用toast顯示timepicker的時間
string time = hourofday + "點:" + minute + "分";
toast.maketext(mainactivity.this, time, toast.length_short).show();
}
}
class buttonlistener implements onclicklistener {
public void onclick(view v) {
string time = timepicker.getcurrenthour() + "點:"
+ timepicker.getcurrentminute() + "分";
toast.maketext(mainactivity.this, time, toast.length_short).show();
}
}
@override
public boolean oncreateoptionsmenu(menu menu) {
// inflate the menu; this adds items to the action bar if it is present.
getmenuinflater().inflate(r.menu.activity_main, menu);
return true;
}
}
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"
android:background="@drawable/folwer1"
tools:context=".mainactivity" >
<timepicker
android:id="@+id/timepickerid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerhorizontal="true"/>
<button
android:id="@+id/buttonid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="獲取設置時間"
android:layout_below="@id/timepickerid"
android:layout_centerhorizontal="true"
android:layout_margintop="50dp"/>
</relativelayout>
二、datepicker
1.datepicker沒有像timepicker一樣類似ontimechangedlistener的監聽器接口。有對話框,以后補充。
補充見:datepicker的對話框設置
模擬器android4.2效果圖:
手機android2.3.7效果圖:
java代碼:
復制代碼 代碼如下:
package com.haut.a07_datepicker;
import android.app.activity;
import android.os.bundle;
import android.view.menu;
import android.view.view;
import android.view.view.onclicklistener;
import android.widget.button;
import android.widget.datepicker;
import android.widget.toast;
public class mainactivity extends activity {
private datepicker datepicker;
private button button;
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
datepicker = (datepicker)findviewbyid(r.id.datepickerid);
button = (button)findviewbyid(r.id.buttonid);
//為button創建監聽器
buttonlistener buttonlistener = new buttonlistener();
button.setonclicklistener(buttonlistener);
}
class buttonlistener implements onclicklistener{
public void onclick(view v) {
string date = datepicker.getyear() + "年:" + datepicker.getmonth() + "月:" + datepicker.getdayofmonth() + "日";
toast.maketext(mainactivity.this, date, toast.length_short).show();
}
}
@override
public boolean oncreateoptionsmenu(menu menu) {
// inflate the menu; this adds items to the action bar if it is present.
getmenuinflater().inflate(r.menu.activity_main, menu);
return true;
}
}
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"
android:background="@drawable/leaf"
tools:context=".mainactivity" >
<datepicker
android:id="@+id/datepickerid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerhorizontal="true"/>
<button
android:id="@+id/buttonid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="獲取設置日期"
android:layout_below="@id/datepickerid"
android:layout_centerhorizontal="true"
android:layout_margintop="50dp"/>
</relativelayout>
三、analogclock
顯示的時鐘時間會隨著系統時間的變化而變化。
代碼比較簡單就不貼了,只是在xml布局文件中添加一個<analogclock/>標簽。
模擬器android4.2效果圖:
手機android2.3.7效果圖:
四、digitalclock
顯示的時鐘時間會隨著系統時間的變化而變化。
模擬器android4.2效果圖:
手機android2.3.7效果圖:
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"
android:background="@drawable/folwer"
tools:context=".mainactivity" >
<digitalclock
android:id="@+id/digitalclockid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerhorizontal="true"
android:layout_margintop="100dp"
android:textcolor="#ff0000"
android:textsize="30sp" />
</relativelayout>
具體的操作以后用到再具體補充~