CH10 對話框與分頁.

Slides:



Advertisements
Similar presentations
高一七班 研究性学习小组 当我们正为寻找什么课 题而烦恼时,忽见一 精光从我面前闪过。 艾玛,原来是我同桌 眼镜反射,自此 “ 眼镜 ” 这课题被我付诸行动。 我们为此进行了研究 讨论学习 下图为组员在查阅资料.
Advertisements

昆明机场. 目录  机场历史 机场历史  建设状况 建设状况  运行状况 运行状况  航线 航线.
從 Android SDK 3.0 開始增加了 2 個新的類別: Fragment 與 Action Bar 。 Fragment 提供不同佈局畫面的另一種用法,但 設計更有彈性,更能針對螢幕大小變化,採用 最合適的設計,例如對較大螢幕的平板裝置, 它可以在一個活動的畫面同時顯示 2 個 Fragment.
Android ADT + Android SDK Eclipse Eclipse 編輯器 JAVA JAVA 開發工具.
第十四章 人口(二) 高中地理(一). 第一節 人口成長 第二節 人口組成 第三節 人口問題 第十四章 人口(二)
中國歷史 社會主義文化大革命 我們的報告是關於中國著名的革命 —— 文化大革命。你可會立即想到它何時發 生、怎麼會發生等等。我們將會介紹文 化大革命,希望你細心欣賞。
党课讲座 入党的条件与程序.
中國大陸教育 督導制度探究 凌林煌教授/博士 講授 國立中山大學共同科歷史學程
第2章  Android应用的界面编程.
温故知新 犬 戎 公元前 770年 周平王 公元前771年 东周 洛邑 西周 镐京.
让我们走进秋天.
第一章 教育与教育学 讲授提纲 教育与教育学 思考题目 主讲: 白彦茹(教授) 阅读文献 教学目的与要求 教学重点与难点 退出.
我国政府受人民的监督 权力的行使:需要监督.
九十二年度第二次 會計作業實務座談會 主辦單位:會計室.
鹽酥蝦 蝦子先處理好 蝦頭剪至眼睛處,鬚及蝦頭的小腳也都剪乾淨 2 再用廚房用剪刀開背去腸泥
第四节 K线图研判技巧.
99年成語200題庫(21-40).
四資二甲 第三週作業 物件導向程式設計.
旅游资源赏析.
個人投資理財分析 財務狀況匯總表 銀行存款 共同基金 外幣基金 股票投資 保險價值 黃金投資 支出預算 房貸計算 不動產價值 資源變化資料庫
道路交通事故處理.
實驗五:多媒體播放器選單介面.
Part 2 開發Android應用程式的流程
第三章 使用者基本介面設計 課程名稱:程式設計 授課老師:李春雄 博士
高中地理(一) 第十六章 產業(二)林、漁、礦業.
第七章 人 口 第一節 種族的分布與現況 第二節 人口結構與成長 第三節 人口問題 總目錄.
第三章 文学作为活动.
宗教故事 Back >> 【被逐出樂園】米開朗基羅1508~12年.壁畫
視野死角與內輪差 埔心國小交通安全團隊.
手持式裝置之隨身照護應用 Android開發環境設定 鐘國家 老師.
手持式裝置之隨身照護應用 Android開發環境設定 鐘國家 老師.
Android App 系統開發教學 Luna 陳雯琳 2014/12/18
厦门大学数据库实验室 报告人:谢荣东 导师:林子雨 2014年8月30日
Chapter 4 手機控制項應用.
實驗四:單位轉換程式.
第2章 建立Android應用程式 2-1 Java語言、XML文件與Android 2-2 建立第一個Android應用程式
Chapter 13 Android 實戰演練.
Android + JUnit 單元測試 建國科技大學資管系 饒瑞佶 2012/8/19V4.
其他視窗.
Ch06 再談選單元件 物件導向系統實務.
啟示錄.
使用Android控制Arduino 史先强
Chapter 6 Advanced UI Design.
Android介面設計 Android智慧型手機程式設計 建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2
Chapter 6 進階UI設計.
第9章 使用意圖啟動活動與內建應用程式 9-1 意圖的基礎 9-2 使用意圖啟動活動
CH7 佈局、按鈕與文字編輯元件.
Android + Service 建國科技大學 資管系 饒瑞佶.
Android 基礎.
實驗十四:顯示與控制地圖.
第13章 学院介绍 --选项卡切换效果 授课老师:高成珍 QQ号: QQ群: 、
第6章 建立Android使用介面 6-1 介面元件的基礎 6-2 Android的事件處理 6-3 按鈕元件 6-4 文字元件
生活智慧王 樹德科技大學 資訊工程系 指導教授 : 陳毓璋 教授 小組成員: 劉上緯 翁維廷 洪文財.
實驗十一:待辦事項程式 (儲存在手機上).
主编:钟元生 赵圣鲁.
Android Studio介面設計 建國科技大學資管系 饒瑞佶 2016/3 V1.
第十讲 刘少奇与中国革命和建设.
Chapter 5 Basic UI Design.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
Android視窗介面 建國科技大學 資管系 饒瑞佶 2010/10.
Location Based Services - LBS
Android視窗介面 建國科技大學 資管系 饒瑞佶 2010/10.
聚合型第一種:隱沒帶、島弧 例子:臺灣東方的琉球海溝、南美洲智利海溝. 聚合型第一種:隱沒帶、島弧 例子:臺灣東方的琉球海溝、南美洲智利海溝.
Happy New year.
Android Speech To Text(STT)
用Intent啟動程式中的其他Activity、運用WebView顯示網頁 靜宜大學資管系 楊子青
控制UI界面 本讲大纲: 1、使用XML布局文件控制UI界面 2、在代码中控制UI界面 3、使用XML和Java代码混合控制UI界面
景文科技大學學生校外實習訪視暨差旅費核銷說明
Presentation transcript:

CH10 對話框與分頁

對話框的作用是將訊息傳給使用者,它的作用雖然與前面介紹的Toast物件類似 對話框則屬於干擾型的訊息通知者,它出現後使用者將無法繼續目前動作,直到你對出現的對話框完成處理

一、對話框 對話框的基本類別是「Dialog」類別,從它延伸出一些專門用途的對話框 它直接的繼承者警示對話框(AlertDialog) 警示對話框的繼承者日期拾取對話框(DatePickerDialod) 與時間拾取對話框(TimePickerDialod)

建立對話框步驟 建立對話框專用佈局檔,此檔需置於專案的「/res/layout/」目錄 從Dialog類別建立實體物件 加入方式:於專案目錄上右擊,選/New/Android XML File 在跳現視窗輸入如圖10-1資料 從Dialog類別建立實體物件 設定Dialog實體物件的屬性及使用的佈局檔 建立此Dialog實體物件的事件處理機制。 Dialog Test範例詳細內容請參考原書(code 10-2)。

對話框之啟用 在主活動布局檔加入一個Button 將Button之屬性定義如下: <Button android:id="@+id/showbtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textview1" android:layout_alignParentBottom="true" android:layout_marginBottom="82dp" android:layout_gravity="center_horizontal" android:onClick="showDialog" android:text="開啟對話框" />

在MainActivity.java內加入“showDialog” 定義 public void showDialog(View view) { dlg=new Dialog(MainActivity.this); dlg.setTitle("對話框標題"); dlg.setContentView(R.layout.dialog_layout); dlg.setCancelable(false); Button dlgBtn=(Button)dlg.findViewById(R.id.button1); dlgBtn.setOnClickListener(dlgBtnListener); dlg.show(); } 參考自對話框布局檔

二、警示對話框 警示對話框(AlertDialog)最多可以擁有3個按鈕,也可以設定標題,顯示一般訊息或提供清單讓使用者選擇。 警示對話框建置過程如下: 實體化AlertDialog.Builder物件,並指定它的擁有者。 AlertDialog.Builder builder= new AlterDialog.Builder(擁有者類別.this);

設定所要建立對話框的標題、圖示、訊息、清單內容等屬性(但Android 4 設定所要建立對話框的標題、圖示、訊息、清單內容等屬性(但Android 4.0以後對話框已不顯示圖示),另外最好將Cancelable屬性設為false,讓使用者無法用裝置的「Back」鈕離開對話框。 builder.setTitle(“對話框標題”); builder.setIcon(android.R.drawable.圖示檔名); builder.setMessage(“對話框訊息”); builder.setSingleChoiceItems(string, index, listener); builder.setCancelable(false);

AlertDialog Test範例詳細內容請參考原書(code 10-4)。 設定對話框上的按鈕;對話框上最多可以有3個按鈕,分別以setPositiveButton(確定)、setNegativeButton(放棄)與setNeutralButton(取消)等方法設定。 builder.setPositiveButton(“標題”, 按鈕事件偵聽器); builder.setNegativeButton(“標題”, 按鈕事件偵聽器); builder.setNeutralButton(“標題”, 按鈕事件偵聽器) 用Builder的create()方法建立警示對話框並顯示。 AlertDialog dlg=builder.create(); dlg.show(); AlertDialog Test範例詳細內容請參考原書(code 10-4)。

SingleChoiceDlg Test範例 單選清單 SingleChoiceDlg Test範例 示範單選清單式警示對話框的使用。 以TextView元件顯示在清單中所選項目的索引,對話框仍以按鈕關閉。 範例詳細內容請參考原書(code 10-6)。

如果要設定的對話框內容為「簡單清單」,使用setItems(資料來源, OnClickListener)方法,簡單清單式對話框在點選清單項目後會自動關閉,因此不必提供按鈕。 如果對話框內容要設定的是「多選清單」,則使用setMultiChoiceItems(資料來源, [], OnMultiChoiceClickListener),但多選與單選清單對話框都屬於持久性對話框,敲選清單項目後不會關閉對話框,因此必須如同一般警示對話框般另外提供按鈕來關閉對話框。

三、日期與時間設定 日期(DatePickerDialog)與時間拾取對話框(TimePickerDialog)屬於比較特殊的對話框,作用是提供預先設計好的介面讓使用者從中挑選日期或時間。 使用方式如下: 從DatePickerDialog或TimePickerDialog建立對話框實體物件。 以OnDateSetListener的onDateSet()方法設定日期,或以OnTimeSetListener的onTimeSet()方法設定時間。 用show()方法顯示對話框。

DateTimePicker Test範例 在佈局中加入一個TextView元件,用以顯示使用者挑選的日期或時間;另外加入2個按鈕,一個用以開啟DatePickerDialog,另一個開啟TimePickerDialog 。 執行時當使用者挑好日期或時間,按下對話框的「Done」按鈕,會觸發onDateSet或onTimeSet方法,我們透過建立的OnDateSetListener與OnTimeSetListener物件處理此事件(取得及顯示挑選的日期或時間)。 範例詳細內容請參考原書(code 10-8) 。

Android SDK也提供DatePicker與TimePicker視圖元件方便開發者使用。 DatePicker當選擇的日期改變時,會觸發onDateChanged事件,因此可以建立OnDateChangedListener偵聽器,實作onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)方法處理此事件。 DatePicker可以用getYear()、getMonth()、getDayOfMonth()等方法取得目前挑選的日期,用updateDate(int year, int month, int dayOfMonth)方法更新目前挑選的日期。

TimePicker當選擇的時間改變時,會觸發onTimeChanged事件,因此可以建立OnTimeChangedListener偵聽器,實作onTimeChanged(TimePicker view, int hour, int minute)方法處理此事件。 TimePicker可以用setIs24HourView(boolean)方法設定是否採24小時制,以getCurrentHour()、getCurrentMinute()等方法取得目前挑選的時間,用setCurrentHour(int)、setCurrentMinute(int)方法更新目前挑選的時間。

TimePickerWidget Test範例 示範TimePicker視圖元件的使用,挑選的時間以TextView元件顯示。 範例詳細內容請參考原書(code 10-10) 。

四、進度顯示對話框 進度顯示對話框(ProgressDialog),提供有進度百分比的長條式進度顯示模式(也能設定次進度顯示),與不確定進度值的旋轉環式進度顯示。 進度顯示對話框不具備任何按鈕,是以完成工作為指標關閉進度顯示對話框,因此一般多用於多執行緒模式,一個執行緒在幕後持續進行此對話框在意的工作,另外還要有一個執行緒負責監視此工作進度並更新進度顯示對話框的進度指示(對長條式)。

建立進度顯示對話框須從ProgressDialog類別實體化為物件,並以擁有者為參數初始化 以setTitle(CharSequence[])方法設定標題 以setMessage(CharSequence[])方法設定顯示的訊息 以setIndeterminate(Boolean)設定進度顯示的模式 以setCanceable(Boolean)設定裝置的「Back」鈕能否關閉對話框 最後以show()方法顯示進度顯示對話框。 ProgressDialog dialog= new ProgressDialog(MainActivity.this); dialog.setTitle("ProgressDialog Demo"); dialog.setMessage("進行中...."); dialog.setIndeterminate(true); dialog.setCanceable(true); dialog.show();

五、分頁設計 分頁設計(Tab)的畫面讓我們在有限的空間中顯示更多的視圖,它讓使用者利用點選不同頁面標籤,可以迅速更換不同的顯示畫面。 分頁設計的核心是「TabHost」,它是分頁視圖的容器,負責管理整個分頁視圖架構。它有2個子物件,一是「頁標籤集合」,使用者利用點選此標籤換至想要的頁面,這集合受「TabWidget」控制;另一個是「FrameLayout」,它的作用是容納每一頁內所有視圖元件。

分頁設計有2種建立方式,一是用一個XML佈局檔規劃所有頁面內容;也可以各別建立各頁的XML佈局檔,然後用Intent載入指定頁面(如同在不同活動之間更換)。目前我們將採第一種方法。 用佈局檔規劃所有頁面,我們應以<TabHost>為最上層元件,接著加入負責頁面管理的<TabWidget>元件,注意它的識別碼一定要設成「tabs」 ,再來是加入容納每一頁面的<FrameLayout>元件,也要注意它的識別碼一定要設成「@android:id/tabcontent」。

各頁的設計,設計方式與一般單頁活動畫面相同,也是選一種佈局方式(各種佈局方式都可以),然後在佈局中加入需要的視圖元件,需要留意的是佈局也要設定有自己的識別碼,另外最好設定「android:paddingTop」屬性,讓頁面佈局與頁面標籤有些距離。 Tab Test範例 為一個3頁的分頁佈局,第1、3頁採線性佈局,第2頁改採相對佈局,頁面佈局與頁面標籤有100dp的距離。 範例詳細內容請參考原書(code 10-12)。