• 沒有找到結果。

3. 研究方法

3.11 Android Java 程式碼編譯

Android 程式碼專案的程式碼是放在專案的 scr 資料夾,該資料夾中會根據城市開發者在建立專案 時輸入的 Package Name 建立一個 Package,再把程式檔至於其中。而程式檔的名稱就是在建立專案時 輸入的 Activity 名稱,Android 的程式檔的附加檔名為 java。

在 Android 中介面設計檔與功能程式碼是互相搭配,也就是 HTML 設計跟 JAVA 程式。程式介面 設計是以 XML 設計,功能程式則是用 JAVA 處理,以本論文來說,main.xml 與 MainActivity.java 對應,

page2.xml 與 Map.java 對應,m.xml 與 M.java 對應,而這幾個頁面之間的連結則是運用 Intent 語法做連 結。本論文的主要應用程式功能檔為 MainActivity.java、Map.java、M.java。

MainActivity.java.xml 為主程式的首頁效果執行檔,如同 main.xml 一樣在 Eclipes 中建立應用程式,

就一定會產生 MainActivity.java 是應用程式的最初功能程式檔。其設定為當設定的 Button(其設定為 btn0) 經點選觸發後,首頁將頁面會切換到校園地圖頁面。宣告套件名稱,在 Android 程式碼中,第一列都 是顯示該應用程式套件名稱,避免應用程式在變數名稱、方法名稱、類別名稱重複錯誤,如 package wtf.wyf;

A. 宣告定義

此段程式碼所顯示應用程式在不同的套件空間中,都會先使用 import 來引導元件作為宣告,

android.os.Bundle 與 android.app.Activity;則是在每個 android Activity 都會使用到,所以在應用程式的命 名空間中都會事先引入,而本論文則在宣告上多加了 android. content. Intent、android.widget.Button 來 為之後的程式編譯中作宣告。

import android.app.Activity;

import android.content.Intent;

import android.net.Uri;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.ImageView;

B. 顯示 Activity.java 名稱

此段程式碼則顯示 MainActivity 為主頁,並繼承了程式開頭導入的 Activity 類別,在 Map.java、

M.java 中亦運用到此語法類別

public class MainActivity extends Activity {

public class Map extends Activity { public class M extends Activity {

C. 設定指定介面佈局檔

利用 findViewById()取得 R.java 資源檔中 btn0 的介面元件並設定觸發執行 @Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.main);

// 取得資源介面元件

Button btn0=(Button)findViewById(R.id.btn0);

// 設定 button 的 myListner btn0.setOnClickListener(myListner);

}

D. 設定按鈕元件

此段程式碼是 Map.java 中 Button 代碼 btnM、btn A、btn E 的設定,利用 findViewById() 取得 R.java 資源檔中尋找 btnM、btnA、btnE 按鈕介面元件並設定觸發執行,如圖 2-16 所示。

public class Map extends Activity {

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.page2);

Button btnM = (Button) Map.this.findViewById(R.id.btnM);

Button btnA = (Button) Map.this.findViewById(R.id.btnA);

Button btnE = (Button) Map.this.findViewById(R.id.btnE);

E. 設定 Intent 切換介面

設定 btn0 為主要觸發指令,此程式碼有運用到 Intent 語法並利用 setClass 設定 MainActivity 為主程 式類別切換到 Map 程式類別,在 Map.java、M.java 中亦運用到此語法類別。

private Button.OnClickListener myListner=new

Button.OnClickListener(){ //設定從首頁切換到校園地圖

public void onClick(View v){

Intent intent=new Intent();

intent.setClass(MainActivity.this,Map.class);

startActivity(intent);

} };

btnM.setOnClickListener(new Button.OnClickListener(){

public void onClick(View v){

Intent intent = new Intent();

intent.setClass(Map.this, M.class);

Map.this.startActivity(intent);

} });

F. 連結網頁

此段程式碼同樣運用到 Intent 語法並設定指定網址顯示其網頁頁面。

};

private Button.OnClickListener btnm1OnClickLis =new Button.OnClickListener() {

public void onClick(View v){

Uri uri =Uri.parse("https://googledrive.com/host/0BxHoseBChCDWbzVTQ0Q3bm1Ycjg/in dex.html");

Intent it = new Intent(Intent.ACTION_VIEW,uri);

startActivity(it);

} };

G. Android Manifest

設定介面之間的移動轉換,定義切換移動權限,其中 android:label 代表的是顯示的標題名稱,

android:name=”.xxx”則表示 Activity 的路徑與名稱,而[.]表示目前的專案目錄。

</activity>

<activity android:label="Map" android:name=".Map" />

<activity android:label="M" android:name=".M" />

<activity android:label="MB1" android:name=".MB1" />

<activity android:label="M1" android:name=".M1" />

<activity android:label="M2" android:name=".M2" />

<activity android:label="M3" android:name=".M3" />

<activity android:label="M4" android:name=".M4" />

<activity android:label="M5" android:name=".M5" />

<activity android:label="M6" android:name=".M6" />

</application>

相關文件