最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android Activity活動頁面跳轉(zhuǎn)與頁面?zhèn)髦?/h1>
 更新時間:2021年12月10日 10:26:12   作者:曲幽  
大家好,本篇文章主要講的是Android Activity活動頁面跳轉(zhuǎn)與頁面?zhèn)髦?,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽

概述

Android開發(fā)少不了的就是頁面之間的跳轉(zhuǎn),或者想要呼叫打開其他應(yīng)用等

Intent

Intent是Android程序中各組件之間進(jìn)行交互的一種重要方式,不僅可以指明當(dāng)前組件想要執(zhí)行的運(yùn)作,還可以在不同組件之間傳遞數(shù)據(jù)。

顯示Intent啟動

第一個參數(shù)為啟動活動的上下文

第二個參數(shù)為想要啟動的目標(biāo)活動

Intent intent = new Intent(MainActivity.this, TabHostActivity.class);
startActivity(intent);

通過這個構(gòu)造函數(shù)就可以構(gòu)建出Intent的“意圖”,且目標(biāo)明確,所以為顯示啟動

隱式Intent啟動

根據(jù) <intent-filter> 中設(shè)定的 action 和 category 來啟動,且只有<action>和<category>中的內(nèi)容同時能夠匹配上時,這個活動才能響應(yīng)。

Intent intent = new Intent("com.zqunyan.zgstudy.ACTION_START");
intent.addCategory("com.zqunyan.zgstudy.MY_CATEGORY");
startActivity(intent);

如果 <intent-filter> 中的 category 值是 android.intent.category.DEFAULT 則可以省略addCategory(),因為DEFAULT是一種默認(rèn)的 category,在調(diào)用 startActivity() 方法的時候會自動添加到 intent 中,即

Intent intent = new Intent("com.zqunyan.zgstudy.ACTION_START");
startActivity(intent);

啟動其他程序

使用隱式 Intent,我們不僅可以啟動自己程序內(nèi)的活動,還可以啟動其他程序的活動。

網(wǎng)頁瀏覽

action指定為Intent.ACTION_VIEW,其常量值為 android.intent.action.VIEW

然后將網(wǎng)頁地址轉(zhuǎn)換成 Uri 對象傳遞進(jìn)去

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://www.baidu.com"));
startActivity(intent);

撥號界面

action指定為 Intent.ACTION_DIAL

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);

根據(jù)包名打開軟件

借助androdi內(nèi)部的 PackageManager 來根據(jù)包名取得應(yīng)用的啟動頁面

Intent intent = getPackageManager().getLaunchIntentForPackage("com.zqunyan.zgwidget");
if(intent != null){
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
}

根據(jù)類名打開界面

常用于打開系統(tǒng)設(shè)置界面,用于一些快捷功能設(shè)置。借助 Component 來實現(xiàn)

如:下面實例打開華為手機(jī)的設(shè)置頁面

Intent intent = new Intent();
ComponentName componentName = new ComponentName("com.android.settings", "com.android.settings.Settings$DisplaySettingsActivity");
intent.setComponent(componentName);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

startActivityForResult

主頁面

跳轉(zhuǎn)按鈕點擊事件

Intent intent = new Intent(MainActivity.this, ReturnValueActivity.class);
//第二個參數(shù)用于處理返回結(jié)果是判斷是哪個語句調(diào)用的
startActivityForResult(intent, 1); //requestCode = 1

處理返回結(jié)果

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
    super.onActivityResult(requestCode, resultCode, intent);
    if(requestCode == 1){
        if(resultCode == 1){
            String content = intent.getStringExtra("content");
            lblStatus.setText("success");
    	}else{
            lblStatus.setText("fail");
        }
    } 
}

跳轉(zhuǎn)界面

跳轉(zhuǎn)界面?zhèn)骰胤祷刂担㈥P(guān)閉界面

實例化一個空的 Intent綁定數(shù)據(jù)到 IntentsetResult() 回傳結(jié)果值和綁定了數(shù)據(jù)的 Intent關(guān)閉自身,主畫面接收返回結(jié)果

Intent intent = new Intent();
intent.putExtra("content", txtMessage.getText().toString());
//setResult第一個參數(shù)為結(jié)果碼,常用的有Activity.RESULT_OK、RESULT_CANCELED或者自定義整數(shù)型結(jié)果碼
// 第二個參數(shù)為返回值,返回值封裝在Intent中
setResult(1, intent); 
finish();

頁面?zhèn)髦?/h2>

Intent.putExtra 傳值

傳值

intent.putExtra("uname", "admin");

取值

Intent intent = getIntent();
String name = intent.getStringExtra("uname")

借助 Bundle 傳值

用于在 Activity 之間傳送值或數(shù)組資料,好處是當(dāng)一個頁面跳轉(zhuǎn)多個頁面時,可以共用bundle。

簡單值

打包

Bundle bundle = new Bundle();
bundle.putString("NAME", "QY");
bundle.putInt("AGE", 18);
bundle.putDouble("TALL", 175.86);
bundle.putStringArrayList("lstFilePaths", lstFilePaths);
intent.putExtras(bundle);

收包

Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();
String strName = bundle.getString("NAME");
int intAge = bundle.getInt("AGE");
ArrayList<String> lstFilePaths = bundle.getStringArrayList("lstFilePaths");

StringArrayList

正常傳值都為單個實際值,如果想要傳送列表數(shù)據(jù)則一般通過構(gòu)造函數(shù)或參數(shù)傳遞,直接通過 bundle 只能傳送 StringArrayList 簡單列表類型

自定義數(shù)據(jù)類

首先將自定義的數(shù)據(jù)類序列化,即繼承 implements Serializable 接口

數(shù)據(jù)類

public class GoodsInfoModule implements Serializable {}

傳值

bundle.putSerializable("goodsInfo", goodsInfo);

取值

goodsInfo = (GoodsInfoModule) bundle.getSerializable("goodsInfo");

到此這篇關(guān)于Android Activity活動頁面跳轉(zhuǎn)與頁面?zhèn)髦档奈恼戮徒榻B到這了,更多相關(guān)Android Activity頁面跳轉(zhuǎn)與頁面?zhèn)髦祪?nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

康马县| 九台市| 汶上县| 英德市| 兰西县| 桦甸市| 玛多县| 乃东县| 武平县| 民乐县| 丹江口市| 湾仔区| 陈巴尔虎旗| 高安市| 巧家县| 城口县| 丽江市| 池州市| 横峰县| 贡觉县| 尚志市| 丽江市| 伊吾县| 凌海市| 临沧市| 永仁县| 甘洛县| 左云县| 潜山县| 平和县| 丹巴县| 抚州市| 榆社县| 阳曲县| 望都县| 台东市| 宜州市| 铜梁县| 麻江县| 平和县| 旬邑县|