編輯:開發入門
在Android操作系統中,對於界面的一些操作是用戶需要掌握的最基礎的知識點。我們可以通過這篇文章對Android界面互調的方法介紹,來初步了解一下再android系統中對於界面的一些應用技巧。
學到現在,我們發現,我們的實際程序都只在一個界面裡轉,但事實,我們需要寫一些android界面互調的頁面,比如打電話界面,我們可能要彈出一個選擇電話號碼的列表等等。
在Windows界面中,大家都知道分成模式對話框和無模工對話框,但在手機界面中,我們也不能想象到,我個界面是很難同時顯示在一個界面中的,因主屏幕很小。所以說在android系統中,界面跟我們的Windows還是有不少區別的,android界面中同一時間只能顯示一個界面(Activity),但允許子界面中再調子界面,所以這樣想來,在一個開啟的程序中,如果調用了子界面後,其實在後面是生成了一個界面棧,如下圖可以形式象的表示出:
在系統中,有一個優化處理方式是,一個程序可以且只有一個Activity,如果調用了子界面後,再把該程序隱藏到後台,如果系統不足時,系統會將彈出的Activity收回,只剩下一個最原始的Activity,這個主Activity,也可以說是程序的入口。
說了這麼多,我們開始看看android界面互調的具體實現方法,在一個Activity中怎樣彈出另一個Activity吧:
通常,依我們的常規相當,啟動界面無非就是指定一個新界面的具體類,然後調用某個方法咯,看代碼:
1.Intent intent = new Intent(MainActivity.this, NewForm.class);
2.startActivity(intent);//或startActivityForResult(intent, 1);
這代碼碼到並不復雜,我們一項項分析:
Intent
這個具體我也不清楚怎麼來翻譯,主要就是用於界面之間的溝通吧,當然可能還有更多功能,以後再慢慢了解去!new Intent(MainActivity.this, NewForm.class);這裡的創建就可以看到我們將NewForm這個類傳入了。
startActivity
啟動界面函數,傳入的參數也就是我們定義好的intent。
startActivityForResult
這也是一個啟動界面的函數,但與startActivity的區別就是,這個方法啟動界面後,這個界面可以將返回值傳入到父窗體中。至於這個參數1,目前還不是很了解,先用著吧。
其實這一步還是容易讓我們接受的,好,再了解第二步,怎樣傳遞參數?比如,我想做一個界面彈出一個人員列表,選一個人後,關閉界面,然後主界面就要知道我選擇了哪一個值。
在android界面互調實現中,我們傳值采用的是Uri,這是一個用字符串拼接的信息,在系統中也有這麼一個類,為什麼不用Object而用Uri一個字符串呢,其實Object傳遞的信息固然多,但不規范,這個程序用Object來包裝後,其他程序就不知道怎麼樣解釋你這個Object了。而Uri一個字符串可用的將各種資源Html文檔、圖像、視頻片段、程序等由一個通過通用資源標志符(Universal Resource IdentifIEr, 簡稱"URI")進行定位。
Uri分成三部份:訪問資源的命名機制;存放資源的主機名;資源自身的名稱,由路徑表示。
比如“Http://www.baidu.com/text/xxx.Html”這裡面Http是命名機制(協議名),www.baidu.com是資源位置,text/xxxlHtml是資源名稱。在android系統中如“content://contacts/1”表示,在系統中contacts(聯系人)中的第1號,就很容易定位到一個資源了,采用了這些共用的格式後,就可以與系統中的其他處理程序來進行無縫交互,比如
1.Intent intent = new Intent(Intent.ACTION_DIAL,
2.Uri.parse(“tel:555-2368”));
3.startActivity(intent);
就可以用來啟動一個撥號程序。
定義好了參數格式,我們在啟用界面裡就可以用
1.Uri data = Uri.parse("xxxx");
2.intent.setData(data);//傳遞參數
在子界面中,我們用
1.Intent intent = getIntent();
2.Uri data = intent.getData();
來接收傳來的參數
在子界面中,關閉界面時,也有確定和取消之分,
我們在點擊確定按鈕時可以這樣處理:
1.Uri data = Uri.parse("Content://" + edit.getText());
2.Intent result = new Intent(null, data);
3.setResult(RESULT_OK, result);//傳確定信息,和參數
4.finish();
當點擊取消按鈕時,這樣處理:
1.setResult(RESULT_CANCELED, null);
2.//傳取消信息,和參數
3.finish();
在父界面中,我們通過一個public void onActivityResult(int requestCode, int resultCode, Intent data)繼承函數來處理所有子界面的返回消息。這裡面傳來了請求代碼,返回代碼,和返回值,比如:
1.public void onActivityResult(int requestCode,
int resultCode, Intent data) {
2.super.onActivityResult(requestCode, resultCode, data);
3.if (resultCode == Activity.RESULT_OK) {
4.Uri horse = data.getData();
5.TextView txt = (TextView)findViewById(R.id.TextVIEw01);
6.txt.setText(horse.toString());
7.}
8.}
所以Google Voice Recognition在android 的實現就變得極其輕松。語音識別,借助於雲端技術可以識別用戶的語音輸入,包括語音控制等技術,下面我們
先決條件在本文中,我們將創建一個在 Android 設備上運行的移動應用程序。您將需要安裝 android SDK;本文使用 V1.5 SDK。應用程序代碼將用 Sca
簡介: 這個兩部分文章系列探索了在 android 平台上處理 Internet 上兩種最常見的數據格式 — XML 和 JavaScript Object
Android 應用程序必須訪問位於 Internet 上的數據,而 Internet 數據可以有幾種不同的格式。本文將介紹在 android 應用程序中如何使用三種數