Microsoft PowerPoint - 07.Android 介面元件-TableLayout、Toast、AlertDialog

Similar documents
主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

多媒體應用 13 新增專案並完成版面配置 <ExMusic01> <activity_main.xml> ImageView ID imgplay ImageView ID imgstop ImageView ID imgfront TextView ID txtsong TextView ID t

Microsoft PowerPoint - 05.Android 介面元件-RelativeLayout、Button、TextVeiw、EditText

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

Dynamic Layout in Android

Microsoft Word - 第3章.doc

PowerPoint 簡報

0511-Android程式之GPS應用_專題週記4

Microsoft PowerPoint - 09.Android 程式設計-SQLite

建立Android新專案

Android Service

建模与图形思考

ShareText

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 :

The Embedded computing platform

Microsoft Word - 02.目錄.doc

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

建立Android新專案

Microsoft PowerPoint - 12 jQuery Mobile 事件處理方式

Android + NFC

Android 开发教程

Android Fragment

投影片 1

實作SQLiteOpenHelper類別

Microsoft PowerPoint - VB14.ppt

第一章 Android 简介与开发环境搭建

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

Database_001

Microsoft Word - 01.DOC

Microsoft PowerPoint - 08_Android_Spring11_Control2.pptx

Android 编程基础 Android 开发教程 & 笔记 1

「西醫基層總額支付委員會《第28次委員會議紀錄

Android 开发教程

幻灯片 1

p17-30.pdf

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

untitled

1.5招募说明书(草案)

人民邮电

Microsoft PowerPoint - 03 开发入门.ppt [兼容模式]

投影片 1

Microsoft Word - 第4章 3D相册.doc

关于规范区委、区委办公室发文

Microsoft Word - ??山

Microsoft Word - 助理人員教育訓練-會計室.docx

untitled

Android Android Android SDK iv

浙江师范大学2014年度毕业生就业质量报告

目 录 监 管 资 讯 2016 年 全 国 保 险 监 管 工 作 会 议 召 开...3 协 会 动 态 赤 峰 保 险 行 业 协 会 召 开 数 据 统 计 和 信 息 宣 传 总 结 表 彰 会 议...5 赤 峰 市 保 险 行 业 协 会 秘 书 处 召 开 2015 年 度 述 职

同 时, 采 取 提 供 新 闻 线 索 和 素 材 安 排 专 访 等 方 式 主 动 为 新 闻 媒 体 服 务, 为 采 访 报 道 活 动 创 造 便 利 条 件 建 设 网 络 信 息 发 布 平 台 2013 年 9 月 开 通 中 央 纪 委 监 察 部 网 站,2015 年 1 月

公務員服務法第13條相關解釋彙整表

大陸教育部等6個部門公佈「現代職業教育體系建設規劃 ( 年)」規劃到2015年初步形成現代職業教育體系框架,到2020年基本建成「中國」特色現代職業教育體系

资 讯 速 递 台 基 于 大 数 据 的 学 校 督 导 评 估 系 统 建 设 上 海 市 闵 行 区 人 民 政 府 教 育 督 导 室 ( 摘 要 ) 闵 行 教 育 在 深 化 教 育 改 革 探 索 管 办 评 分 离 的 背 景 下, 把 教 育 督 导 评 估 系 统 建 设 作 为

時間軸上的竹蓮記憶 學務主任 黃雅彙 我不是竹蓮國小的畢業校友 但對於身為新竹人的我來 說 仔細回想起來 似乎和竹蓮有著一種特別的緣分 對竹蓮國小最初的印象是在小學的時候 猶記得年幼的 我經過一段時日的啦啦隊舞蹈訓練後 老師便帶著我們從學 校步行到竹蓮國小來參加比賽 一踏入竹蓮校門 映入眼簾 的是黑

B1

Microsoft Word - 临政办发6.doc

B1

PowerPoint Presentation

運算子多載 Operator Overloading

JavaIO.PDF

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

Microsoft Word - 第3章.doc

《大话设计模式》第一章


投影片 1

Android 基礎教學

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

Cover-3.indd, page Normalize

人 間 菩 提 Part 1 人 間 菩 提 Part 2 清 涼 菩 提 正 覺 修 行 清 心 發 願 自 重 ----

FP.pdf


<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

PowerPoint 簡報

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

6-?????C???{???]?p

RecyclerView and CardVew

書面

建模与图形思考

Java

untitled

untitled

Chapter 4

2000 中華民國自動控制研討會徵文啟事

<4D F736F F D20B5DA33D5C220B3CCD0F2C9E8BCC6BBF9B4A12E646F6378>

CC213

03 开发入门.key

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

06 01 action JavaScript action jquery jquery AJAX CSS jquery CSS jquery HTML CSS jquery.css() getter setter.css('backgroundcolor') jquery CSS b

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

附件1-1

Microsoft Word - ch04三校.doc

FETnet - Acer Iconia Tab  (A500 Wi-Fi 版) 平板電腦操作指南

使用MapReduce读取XML文件

Microsoft PowerPoint - L17_Inheritance_v4.pptx

状 态, 规 划 车 辆 行 驶 路 径, 可 进 入 网 站 充 电 服 务 栏 目 (2) 查 询 位 置 联 系 方 式 营 业 时 间 等 信 息, 可 进 入 网 站 服 务 指 南 栏 目 建 议 您 出 行 前 通 过 易 充 电 互 动 网 站 提 前 了 解 所 经 高 速 快 充

Microsoft PowerPoint - 遊戲企劃

Transcription:

計劃名稱 : 104 年度教育部資通訊軟體創新人才推升推廣計畫跨校資源中心 : 雲端運算 ( 國立中山大學 ) 課程名稱 : 網路及平台服務 Part1- 課程教材 教材名稱 :Android 介面元件 -TableLayout Toast AlertDialog 國立高雄大學資訊工程學系張保榮教授

大綱 TableLayout 版面配置 Toast 版面配置 AlertDialog 版面配置

TableLayout 版面配置 TableLayout 是以表格的方式安排版面配置, 只要將元件或資訊放在儲存格中, 顯示時會排列整齊 TableLayout 語法如下 : <TableLayout xmlns:android=http://schemas.android.com/apk/res/androidandroid:layout_w idth= fill_parent android:layout_height= fill_parent > <TableRow>.. 設定元件.. </TableRow> <TableRow android:gravity= center >.. 設定元件.. </TableRow> </TableLayout>

TableLayout 版面配置 ( 續 ) 資料夾 [res/layout] 內的 activity_main.xml 添加內容, 如下 : 新增二個 TableRow 三個 TextView 二個 EditText

TableLayout 版面配置 ( 續 )

TableLayout 版面配置 ( 續 ) 修改 [valuse] strings.xml 文件內容 新增 xml 語法, 如下所示 :

TableLayout 版面配置 ( 續 ) 模擬器測試結果 此時只是單純的輸入資料, 並無任何的執行動作

TableLayout 版面配置 ( 續 ) 利用 Graphical 方式放置 TableLayout 時,TalbeRow 元件的預設屬性會有 android:layout_width 和 android:layout_height 兩項, 使用者可將其刪除, 更改成 android:gravity = center 元件的排列的屬性設定有兩種方式, 分別為 gravity 與 layout_gravity, 屬性值可設定成 left right center 等三種 gravity: 指元件內的 文字 靠向哪邊 layout_gravity: 指元件本身放置於父容器的哪邊

TableLayout 版面配置 ( 續 ) 設計成如圖的版面 請先移除 RelativeLayout, 再重新拉 TableLayouut 共有四個 TableRow 元件, 每個 TableRow 元件各有三個 Button 元件, 並且當使用者點擊確認鍵後, 會顯示密碼是否正確的訊息

TableLayout 版面配置 ( 續 ) 資料夾 [res/layout] 內的 activity_main.xml 添加內容, 如下 : 新增四個 TableRow 十二個 Button 一個 TextView 一個 EditText

TableLayout 版面配置 ( 續 )

TableLayout 版面配置 ( 續 )

TableLayout 版面配置 ( 續 )

TableLayout 版面配置 ( 續 )

TableLayout 版面配置 ( 續 ) 修改 [valuse] strings.xml 文件內容 新增 xml 語法, 如下所示 :

TableLayout 版面配置 ( 續 ) [src] MainActivity.java 完整程式碼如下 先匯入類別元件

TableLayout 版面配置 ( 續 ) 取得介面元件 id

TableLayout 版面配置 ( 續 ) 利用前一堂課所教的 MultiButton 技巧實現功能

TableLayout 版面配置 ( 續 )

TableLayout 版面配置 ( 續 ) 建立取得元件內字串的方法

TableLayout 版面配置 ( 續 ) 模擬器測試結果 當密碼輸入正確時, 會顯示結果告知使用者是否正確 請同學試試看如何把輸入的密碼設定成隱藏顯示的方法, 如 : 輸入 123456 ******

Toast 元件應用 Toast 是當程式在執行的過程中, 要顯示一個小訊息告訴使用者必要的資訊時, 此訊息必須在短時間內顯示後結束, 以免干擾到使用者 Toast 語法如下 : Toast 變數名稱 = Toast.makeText( 主程式類別.this,Text,Time); 變數名稱.show(); 主程式類別.this: Text: 要顯示的訊息字串 Time: 代表顯示的時間, 設定值分別為 Toast.LENGTH_LONG 和 Toast.LENGTH_SHORT 變數名稱.show(): 將 toast 內容顯示出來

Toast 元件應用 ( 續 ) 將 TableCheck App 中的 TextView 元件功能移除, 改成 Toast 方式顯示 : 您的密碼正確

Toast 元件應用 ( 續 ) 請照下圖內容, 修改 btnenter 程式碼內容

Toast 元件應用 ( 續 ) Toast 預設的顯示位置在畫面的正下方, 當然我們也是可以改變顯示的位置, 依照開發者的喜好設定位置 變數名稱.setGravity(Gravity,xOffset,yOffset); Gravity: 常見的屬性值 Gravity.CENTER Gravity.CENTER_HORIZONTAL Gravity.CENTER_VERTICAL Gravity.TOP Gravity.BOTTOM xoffset:x 軸座標值, 例如 :50 yoffset:y 軸座標值, 例如 :95 同學自行設定 Toast 的顯示位置作練習

AlertDialog 元件應用 AlertDialog 元件可以想像成與 Toast 元件具有相同的功能, 兩者都可以顯現訊息 差別在於, 前者可與使用者產生互動, 而後者只能單純顯示訊息後即結束工作 當 AlertDialog 元件顯示訊息後並不會自動消失, 而開發者可製作按鈕功能與使用者互動, 直到使用者退出 AlertDialog 或點擊開發者設計的關閉按鈕動作才結束

AlertDialog 元件應用 ( 續 ) AlertDialog 基本形式 設定值 settitle() seticon() setmessage() setitems() setpositivebutton() 意義設定 AlertDialog 的標題設定 AlertDialog 的圖示設定 AlertDialog 的內容設定 AlertDialog 的表 ( 項 ) 內容設定 AlertDialog 中加入 Yes 按鈕 setnegativebutton() 設定 AlertDialog 中加入 No 按鈕 setneutralbutton() 設定 AlertDialog 中加入 Ignore 按鈕

AlertDialog 元件應用 ( 續 ) AlertDialog 語法如下 : AlertDialog.Builder 變數名稱 =new AlertDialog.Builder( 主程式類別 ) 變數名稱.setTitle( 字串內容 ); 變數名稱.setIcon(R.drawable. 物件名稱 ); 變數名稱.setMessage( 字串內容 ); 變數名稱.show();

AlertDialog 元件應用 ( 續 ) 可將上述的語法簡化如下的作法 : new AlertDialog.Builder( 主程式類別 ).settitle( 字串內容 );.seticon(r.drawable. 物件名稱 );.setmessage( 字串內容 );.show(); 建立 AlertDialog 物件的名稱實際上是無意義的, 所以才有簡化的做法, 可以將其語法簡化, 使 AlertDialog 方便開發者使用 簡化的語法又可稱為 : 匿名物件的作法

AlertDialog 元件應用 ( 續 ) 針對 TableCheck App 增加設計 退出 的按鈕, 並且當使用者點擊後, 跳出 AlertDialog 訊息來告知使用者是否退出程式, 若使用者欲退出, 則點擊 AlertDialog 上的確定的按鈕, 否的話點擊取消的按鈕, 其他則是設定成忽略的按鈕

AlertDialog 元件應用 ( 續 ) [res/layout] 內的 activity_main.xml 添加 Button 元件 : <Button android:id=@+id/btnleave android:layout_width= wrap_content android:layout_height= wrap_content android:text=@string/leave android:onclick=click /> [src] MainActivity.java 新增 Button 程式碼如下 :

課堂練習

String.xml <string name="num"> 請輸入密碼 </string> <string name="one">1</string> <string name="two">2</string> <string name="three">3</string> <string name="four">4</string> <string name="five">5</string> <string name="six">6</string> <string name="seven">7</string> <string name="eight">8</string> <string name="nine">9</string> <string name="clean"> 清除 </string> <string name="zero">0</string> <string name="check"> 確定 </string> <string name="leave"> 離開 </string>

Mainactivity.java import android.app.alertdialog; import android.content.dialoginterface; import android.preference.dialogpreference; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.widget.button; import android.widget.edittext; import android.view.view; import android.widget.toast; public class MainActivity extends AppCompatActivity { public Button btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn0,btnclean,btncheck,btnleave; public EditText edit1; public String pass=""; @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main);

edit1=(edittext)findviewbyid(r.id.edittext); btn1=(button)findviewbyid(r.id.button1); btn2=(button)findviewbyid(r.id.button2); btn3=(button)findviewbyid(r.id.button3); btn4=(button)findviewbyid(r.id.button4); btn5=(button)findviewbyid(r.id.button5); btn6=(button)findviewbyid(r.id.button6); btn7=(button)findviewbyid(r.id.button7); btn8=(button)findviewbyid(r.id.button8); btn9=(button)findviewbyid(r.id.button9); btnclean=(button)findviewbyid(r.id.buttonclean); btn0=(button)findviewbyid(r.id.button0); btncheck=(button)findviewbyid(r.id.buttoncheck); btnleave=(button)findviewbyid(r.id.buttonleave); btn1.setonclicklistener(mylistener); btn2.setonclicklistener(mylistener); btn3.setonclicklistener(mylistener); btn4.setonclicklistener(mylistener); btn5.setonclicklistener(mylistener); btn6.setonclicklistener(mylistener); btn7.setonclicklistener(mylistener); btn8.setonclicklistener(mylistener); btn9.setonclicklistener(mylistener); btnclean.setonclicklistener(mylistener); btn0.setonclicklistener(mylistener); btncheck.setonclicklistener(mylistener); btnleave.setonclicklistener(mylistener);

private Button.OnClickListener mylistener=new Button.OnClickListener(){ public void onclick(view v){ String str=edit1.gettext().tostring(); switch (v.getid()){ case R.id.button1:{ display(); pass+="1"; break; case R.id.button2:{ display(); pass+="2"; break; case R.id.button3:{ display(); pass+="3"; break; case R.id.button4:{ display(); pass+="4"; break; case R.id.button5:{ display(); pass+="5"; break; case R.id.button6:{ display(); pass+="6"; break;

case R.id.button7:{ display(); pass+="7"; break; case R.id.button8:{ display(); pass+="8"; break; case R.id.button9:{ display(); pass+="9"; break; case R.id.buttonclean:{ edit1.settext(""); pass=""; break; case R.id.button0:{ display(); pass+="0"; break; case R.id.buttoncheck:{ if(pass.equals("123456")) { Toast toast=toast.maketext(mainactivity.this," 密碼正確 ",Toast.LENGTH_LONG); toast.show(); else { Toast toast=toast.maketext(mainactivity.this," 密碼錯誤, 請重新輸入 ",Toast.LENGTH_LONG); toast.show(); break;

case R.id.buttonleave:{ new AlertDialog.Builder(MainActivity.this).setTitle(" 確認視窗 ").setmessage(" 你確定要關閉程式嗎?").setPositiveButton(" 確定 ", new DialogInterface.OnClickListener() { @Override public void onclick(dialoginterface dialog, int which) { finish(); ).setnegativebutton(" 取消 ", new DialogInterface.OnClickListener() { @Override public void onclick(dialoginterface dialog, int which) { ).setneutralbutton(" 忽略 ", new DialogInterface.OnClickListener() { @Override public void onclick(dialoginterface dialog, int which) { ).show(); break; public void display(){ String strr=edit1.gettext().tostring(); edit1.settext(strr+"*"); ;

END