[ 基本使用狀況 ]
畫面更新只能在主執行緒中,因此如果在其它執行緒中有需要更新畫面,那就需要回到主執行緒。
從其它執行緒回到主執行緒,需使用 Handler。
主執行緒(UI執行緒)不允許執行需要長時間的動作,否則會產生 ANR(Application is Not Responding),因此就要使用其它執行緒,但結果需要更新畫面,因此就要用 Handler。

jsky 發表在 痞客邦 留言(0) 人氣()

[ NetworkOnMainThreadException ]
從Android 3.0開始,Thread Policy加強了限制,只要嘗試在主執行緒中進行網路操作,就會產生這個錯誤。
解決NetworkOnMainThreadException的問題 

jsky 發表在 痞客邦 留言(0) 人氣()

Module : 
官方說明 : A module is a collection of source files and build settings that allow you to divide your project into discrete units of functionality.

jsky 發表在 痞客邦 留言(0) 人氣()

[ Intent / 意圖 ]
用來向另一個應用程式元件要求動作的傳訊物件。
三種基本使用目的 :

  • 啟動 Activity

  • 啟動服務(Service)

  • 傳送廣播


在兩個 Activity 中傳遞參數

指定動作 (ex: 打開網頁、顯示地圖、打電話、發Email ...)

在 mainfest file 中的 Acitvity,可以設定 <intent-filter>,其中可以設定三種過濾條件 <action> <category> <data>
系統會去依據這些條件,判斷該 Activity 是否可以處理你的 intent
Reference

jsky 發表在 痞客邦 留言(0) 人氣()

[ Reference ]
Android 6 Tutorial 第二堂(2)設計應用程式使用者介面 by Michael | CodeData 

jsky 發表在 痞客邦 留言(0) 人氣()

依據不同的事件會有不同的使用方法
利用事件監聽器 (Event Listeners),包含下面幾個事件 : 

  • onClick()
    onLongClick()
    onFocusChange()
    onKey()
    onTouch()
    onCreateContextMenu()

  • 可在 Activity 中實做,Ex: button.setOnClickListener(this);
    詳細請參考 [ Reference ] - Android Developers - Input Event / 輸入事件

  • 建立一個匿名的事件監聽器,並裝元件(View)設定至該監聽器,Ex: button.setOnClickListener(mCorkyListener);
    詳細請參考 [ Reference ] - Android Developers - Input Event / 輸入事件
     


下列事件,可利用覆寫(Override)觸發:

  • onKeyDown(int, KeyEvent)
    onKeyUp(int, KeyEvent) 
    onTrackballEvent(MotionEvent)
    onTouchEvent(MotionEvent)
    onFocusChanged(boolean, int, Rect)  
     


onClick的快速加入:

  1. 在佈局頁面(XML檔案)的Design中,元件的屬性裡,有個onClick屬性,可在裡面填寫onClick的處理函式名稱

  2. 回到佈局頁面的Text中,找到該元件的 android:onClick="ClickFunction",在上面使用 Alt + Enter ,點選 Create 'ClickFunction(View)' in '...',將會自動在對應的java檔案建立 ClickFunction
     


自訂 Event

  • java事件处理机制(自定义事件) - 游鱼 - 博客园 

  • 狀況說明 : 有一個 ControlSystem Class,裡面有個成員為 TcpClient Class,希望 TcpClient 收到資料時,ControlSystem 能夠知道並且處理。

    1. 宣告 class TcpClientEvent

    2. 宣告 interface TcpClientListener

    3. 在 class TcpClient 中,宣告相關 members

      1. private Collection listeners;

      2. public void addEventLister(TcpClientListener listener)

      3. public void removeEventLister(TcpClientListener listener)

      4. private void event_ReceiveData(byte[] RcvData)
        ps. 在 TcpClient 中,需要事件發生就執行該function,
        ps. 在這裡會產生一個 TcpClientEvent,然後執行 event_notifyListeners,讓其幫忙把 TcpClientEvent 送給需要的 TcpClientListener

      5. private void event_notifyListeners(TcpClientEvent event)



    4. 在 class ControlSystem 中

      1. 宣告 private class TcpClientListener1 implements TcpClientListener
        ps. 這是 ControlSystem 收到事件時,執行動作的地方,也就是 ControlSystem 處理 TcpClient 事件的程式是寫在這裡。
        ps. 也可宣告在 class ControlSystem 外面,但我認為,裡面是事件發生時要處理的動作,也不會被其他 class 使用,那就放在使用的 class 中就好了。

      2. tcpCli.addEventLister(new TcpClientListener1());



    5. 在 class TcpClient 中,會判斷是否有收到資料,當有收到時則執行 event_ReceiveData(RcvBytes); 然後就會跳到 TcpClientListener1 中去執行。

    6. TcpClient.java
      public class TcpClient {
      private Collection listeners;
      ...
      public void addEventLister(TcpClientListener listener) {...}
      public void removeEventLister(TcpClientListener listener) {...}
      private void event_ReceiveData(byte[] RcvData) {...}
      private void event_notifyListeners(TcpClientEvent event) {...}
      private void hasReceivedData(byte[] RcvData) {
      event_ReceiveData(RcvData);
      }
      ...
      }
      class TcpClientEvent extends EventObject {
      ...
      }
      interface TcpClientListener extends EventListener {
      ...
      }

       

    7. ControlSystem.java
      public class ControlSystem {
      private TcpClient tclCli = new TcpClient();
      public ControlSystem() {
      tcpCli.addEventLister(new TcpClientListener1());
      }
      ...
      }
      private class TcpClientListener1 implements TcpClientListener {
      @Override
      public void TcpClientEvent(TcpClientEvent event) {
      ...
      }
      }

       




jsky 發表在 痞客邦 留言(0) 人氣()

undefined
[ 初學 ]
Android - Ch5 Android 最基本的元件:Activity、Intent、Fragment | Mr. Opengate 

jsky 發表在 痞客邦 留言(0) 人氣()

Rjava.png
官方說明 :
編譯應用程式後,aapt 會產生 R 類別。此類別內含 res/ 目錄中所有資源的資源 ID。 每一種資源類型都有 R 子類別 (例如,所有可繪項目資源的 R.drawable),而這種類型的每一種資源都有靜態整數 (例如,R.drawable.icon)。 此整數就是資源 ID,您可以用於擷取資源。

jsky 發表在 痞客邦 留言(0) 人氣()

Proj00.png
Project : 每個 Project 可以有多個 Module.
官方說明 : A project in Android Studio contains everything that defines your workspace for an app, from source code and assets, to test code and build configurations. When you start a new project, Android Studio creates the necessary structure for all your files and makes them visible in the Project window on the left side of the IDE (click View > Tool Windows > Project).

jsky 發表在 痞客邦 留言(0) 人氣()

[ 單字 ]
機場     airport
航廈     terminal
國內線航廈  Domestic Terminal
國際線航廈  International Terminal
貨運站    Cargo Terminal
維修棚廠   Maintenance Hanger
大廳     lobby
詢問處    information
服務台    Information Counter
出境     Departure
入境     Arrival
出發時間   departure time
抵達時間   arrival time
預定抵達時間 ETA(estimated time of arrival)
登機     board,embark
登機證    boarding pass
登機門    boarding gate
登機時間   boarding time
登機手續   check in
登機手續櫃檯 check in counter
隨身行李檢查 baggage inspection
行李重量限制 baggage allowance
行李     Baggage
過重行李   excess baggage
行李提領券  claim tag
托運行李   check-in baggage,umaccopanied baggage
隨身行李   carry-on baggage
行李托運   Baggage Delivery
提領行李   Baggage Claim
存關行李   Bonded Baggage 
行李標籤   Luggage Tag
行李手推車  Luggage Cart(Trolley)
行李打包服務 Baggage Baling Service
機場稅    airport tax,Departure Fee
護照檢查   passport control
安全檢查   security check
侯機室    airport lounge,Waiting Room
過境     transit,pass through
轉機     transfer
轉機航班   connecting flight
班機起降表  Departures Schedule
航空公司   Airline
班機代號   Flight NO.
預定時間   Scheduled
實際出發時間 Will Depart
最後登機廣播 Final Call
辦理登機手續中 Check-in Row
旅客     Passenger
行李磅秤   Luggage Scale
航班顯示看板 Flight Information Board
準時     On Time
延誤     Delay
護照     Passport
機票     Ticket
頭等艙    First Class
商務艙    Business Class
經濟艙    Economy Class
時刻表    Timetable
貴賓室    VIP Lounges
接駁車    Shuttle Bus
過境室    Transit Room
入境大廳   Arrival Lobby
海關服務櫃檯 Customs Service Counter
入出境辦公室 Immigration Office
動植物檢疫局 Animal & Plant Quarantine
觀光局旅客服務中心 Tourism Bureau Service Center
旅行同業公會服務櫃檯 Association of Travel Agents Information
寄物櫃    Coin Locker
吸煙室    Smoking Room
祈禱室    Praying Room
外幣兌換   Foreign Currency Exchange
免稅商店   Duty-Free Shop
租車櫃檯   Rental Counter
保險     Insurance Counter
身心障礙服務 Service For The Disabled
跑道     Runway
停機坪    Apron
空橋     Ramp
到站等候區  Greeting Area
塔台     Control Tower
接駁停機坪  Remove Parking Bay
 
----- [ 機票上的欄位 ] -----
開票日    DATE OF ISSUE
起迄點    ORIGIN/DESTINATION
航空公司名稱縮寫 CARRIER
班機號碼   FLIGHT
訂位艙等   CLASS (頭等艙F、商務艙C、經濟艙Y)
出發日期   DATE
當地起飛時間 TIME
座位狀況   STATUS (OK表確定、RQ/HL表後補)
票價總類   FARE BASIS
在~日期前搭乘無效 NOT VALID BEFORE~
在~日期後搭乘無效 NOT VALID AFTER~
行李重量限制 ALLOW
票面價    FARE
票價計算資料 FARE CALCULATION
航空公司3碼數字代號 AIRLINE CODE

jsky 發表在 痞客邦 留言(0) 人氣()


英文常識 Archives - VoiceTube 

jsky 發表在 痞客邦 留言(0) 人氣()

[Web Application ]

Single Page Application - 下一代的Web應用程式(上) 

  • jsky 發表在 痞客邦 留言(0) 人氣()

    1 2
    Blog Stats
    ⚠️

    成人內容提醒

    本部落格內容僅限年滿十八歲者瀏覽。
    若您未滿十八歲,請立即離開。

    已滿十八歲者,亦請勿將內容提供給未成年人士。