自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android界面互調(diào)具體應(yīng)用方式解析

移動(dòng)開發(fā) Android
Android應(yīng)用程序基本都是在單一界面中操作。那么我們?nèi)绾尾拍軐?shí)現(xiàn)界面的互調(diào),以方便我們應(yīng)用呢?在這里就為大家詳細(xì)介紹一下有關(guān)Android界面互調(diào)的相關(guān)操作方法。

Android操作系統(tǒng)中,對于界面的一些操作是用戶需要掌握的最基礎(chǔ)的知識(shí)點(diǎn)。我們可以通過這篇文章對Android界面互調(diào)的方法介紹,來初步了解一下再Android系統(tǒng)中對于界面的一些應(yīng)用技巧。#t#

學(xué)到現(xiàn)在,我們發(fā)現(xiàn),我們的實(shí)際程序都只在一個(gè)界面里轉(zhuǎn),但事實(shí),我們需要寫一些Android界面互調(diào)的頁面,比如打電話界面,我們可能要彈出一個(gè)選擇電話號碼的列表等等。

在Windows界面中,大家都知道分成模式對話框和無模工對話框,但在手機(jī)界面中,我們也不能想象到,我個(gè)界面是很難同時(shí)顯示在一個(gè)界面中的,因主屏幕很小。所以說在Android系統(tǒng)中,界面跟我們的Windows還是有不少區(qū)別的,Android界面中同一時(shí)間只能顯示一個(gè)界面(Activity),但允許子界面中再調(diào)子界面,所以這樣想來,在一個(gè)開啟的程序中,如果調(diào)用了子界面后,其實(shí)在后面是生成了一個(gè)界面棧,如下圖可以形式象的表示出:

 

 

在系統(tǒng)中,有一個(gè)優(yōu)化處理方式是,一個(gè)程序可以且只有一個(gè)Activity,如果調(diào)用了子界面后,再把該程序隱藏到后臺(tái),如果系統(tǒng)不足時(shí),系統(tǒng)會(huì)將彈出的Activity收回,只剩下一個(gè)最原始的Activity,這個(gè)主Activity,也可以說是程序的入口。

 

說了這么多,我們開始看看Android界面互調(diào)的具體實(shí)現(xiàn)方法,在一個(gè)Activity中怎樣彈出另一個(gè)Activity吧:

通常,依我們的常規(guī)相當(dāng),啟動(dòng)界面無非就是指定一個(gè)新界面的具體類,然后調(diào)用某個(gè)方法咯,看代碼:

 

  1. Intent intent = new Intent(MainActivity.this, NewForm.class);  
  2. startActivity(intent);//或startActivityForResult(intent, 1); 

 

 

這代碼碼到并不復(fù)雜,我們一項(xiàng)項(xiàng)分析:

Intent

這個(gè)具體我也不清楚怎么來翻譯,主要就是用于界面之間的溝通吧,當(dāng)然可能還有更多功能,以后再慢慢了解去!new Intent(MainActivity.this, NewForm.class);這里的創(chuàng)建就可以看到我們將NewForm這個(gè)類傳入了。

startActivity

啟動(dòng)界面函數(shù),傳入的參數(shù)也就是我們定義好的intent。

startActivityForResult

這也是一個(gè)啟動(dòng)界面的函數(shù),但與startActivity的區(qū)別就是,這個(gè)方法啟動(dòng)界面后,這個(gè)界面可以將返回值傳入到父窗體中。至于這個(gè)參數(shù)1,目前還不是很了解,先用著吧。

 

其實(shí)這一步還是容易讓我們接受的,好,再了解第二步,怎樣傳遞參數(shù)?比如,我想做一個(gè)界面彈出一個(gè)人員列表,選一個(gè)人后,關(guān)閉界面,然后主界面就要知道我選擇了哪一個(gè)值。

在Android界面互調(diào)實(shí)現(xiàn)中,我們傳值采用的是Uri,這是一個(gè)用字符串拼接的信息,在系統(tǒng)中也有這么一個(gè)類,為什么不用Object而用Uri一個(gè)字符串呢,其實(shí)Object傳遞的信息固然多,但不規(guī)范,這個(gè)程序用Object來包裝后,其他程序就不知道怎么樣解釋你這個(gè)Object了。而Uri一個(gè)字符串可用的將各種資源HTML文檔、圖像、視頻片段、程序等由一個(gè)通過通用資源標(biāo)志符(Universal Resource Identifier, 簡稱"URI")進(jìn)行定位。

Uri分成三部份:訪問資源的命名機(jī)制;存放資源的主機(jī)名;資源自身的名稱,由路徑表示。

比如“Http://www.baidu.com/text/xxx.html”這里面Http是命名機(jī)制(協(xié)議名),www.baidu.com是資源位置,text/xxxlhtml是資源名稱。在Android系統(tǒng)中如“content://contacts/1”表示,在系統(tǒng)中contacts(聯(lián)系人)中的第1號,就很容易定位到一個(gè)資源了,采用了這些共用的格式后,就可以與系統(tǒng)中的其他處理程序來進(jìn)行無縫交互,比如

 

  1. Intent intent = new Intent(Intent.ACTION_DIAL,  
  2. Uri.parse(“tel:555-2368”));  
  3. startActivity(intent); 

 

就可以用來啟動(dòng)一個(gè)撥號程序。

 

定義好了參數(shù)格式,我們在啟用界面里就可以用

 

  1. Uri data = Uri.parse("xxxx");  
  2. intent.setData(data);//傳遞參數(shù) 

 

 

在子界面中,我們用

 

  1. Intent intent = getIntent();  
  2. Uri data = intent.getData(); 

 

來接收傳來的參數(shù)

 

在子界面中,關(guān)閉界面時(shí),也有確定和取消之分,

我們在點(diǎn)擊確定按鈕時(shí)可以這樣處理:

 

  1. Uri data = Uri.parse("Content://" + edit.getText());  
  2. Intent result = new Intent(null, data);  
  3. setResult(RESULT_OK, result);//傳確定信息,和參數(shù)  
  4. finish(); 

 

當(dāng)點(diǎn)擊取消按鈕時(shí),這樣處理:

 

  1. setResult(RESULT_CANCELED, null); 
  2. //傳取消信息,和參數(shù)  
  3. finish(); 

 

 

在父界面中,我們通過一個(gè)public void onActivityResult(int requestCode, int resultCode, Intent data)繼承函數(shù)來處理所有子界面的返回消息。這里面?zhèn)鱽砹苏埱蟠a,返回代碼,和返回值,比如:

 

  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. }  

Android界面互調(diào)的相關(guān)操作方法就為大家介紹到這里。

責(zé)任編輯:曹凱 來源: CSDN
相關(guān)推薦

2010-01-26 10:52:01

Android繪圖

2010-02-02 17:47:59

C++操作剪貼板

2010-01-25 11:29:33

Android計(jì)時(shí)器

2009-12-24 14:30:19

WPF MVVM

2010-03-04 11:36:02

Python提交表單

2010-01-11 17:40:36

VB.NET相框效果

2009-11-30 16:08:32

PHP addslas

2011-12-20 10:42:22

Android應(yīng)用界面設(shè)計(jì)

2010-01-20 17:41:13

VB.NET標(biāo)記語句

2010-01-25 17:33:25

Android Men

2010-02-06 17:21:20

C++ CreateT

2010-03-05 15:49:56

Android界面

2009-11-25 14:00:37

PHP函數(shù)asort(

2012-04-26 22:57:57

Android

2010-01-21 18:19:45

VB.NET條件編譯

2009-12-17 15:02:32

Ruby on Rai

2009-11-24 14:22:03

基于PHP的AJAX技

2016-08-31 13:48:00

AndroidRetrofit源碼解析

2009-11-27 15:31:33

PHP類搜索定位目錄樹

2009-11-26 14:23:10

PHP正則模式修正符
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號