溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android中怎么實(shí)現(xiàn)界面互調(diào)

發(fā)布時(shí)間:2021-06-26 15:19:49 來(lái)源:億速云 閱讀:121 作者:Leah 欄目:移動(dòng)開發(fā)

本篇文章為大家展示了Android中怎么實(shí)現(xiàn)界面互調(diào),內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

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

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

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

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

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

Intent

這個(gè)具體我也不清楚怎么來(lái)翻譯,主要就是用于界面之間的溝通吧,當(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來(lái)包裝后,其他程序就不知道怎么樣解釋你這個(gè)Object了。而Uri一個(gè)字符串可用的將各種資源HTML文檔、圖像、視頻片段、程序等由一個(gè)通過(guò)通用資源標(biāo)志符(Universal Resource Identifier, 簡(jiǎn)稱"URI")進(jìn)行定位。

Uri分成三部份:訪問(wèn)資源的命名機(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號(hào),就很容易定位到一個(gè)資源了,采用了這些共用的格式后,就可以與系統(tǒng)中的其他處理程序來(lái)進(jìn)行無(wú)縫交互,比如

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

就可以用來(lái)啟動(dòng)一個(gè)撥號(hào)程序。

定義好了參數(shù)格式,我們?cè)趩⒂媒缑胬锞涂梢杂?/p>

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

在子界面中,我們用

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

來(lái)接收傳來(lái)的參數(shù)

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

我們?cè)邳c(diǎn)擊確定按鈕時(shí)可以這樣處理:

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

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

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

在父界面中,我們通過(guò)一個(gè)public void onActivityResult(int requestCode, int resultCode, Intent data)繼承函數(shù)來(lái)處理所有子界面的返回消息。這里面?zhèn)鱽?lái)了請(qǐng)求代碼,返回代碼,和返回值,比如:

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

上述內(nèi)容就是Android中怎么實(shí)現(xiàn)界面互調(diào),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI