麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

第一行安卓代碼——使用Intent在活動之間穿梭2.3

2019-11-09 18:09:55
字體:
來源:轉載
供稿:網友

只有一個活動的安卓應用確實太簡單了,這一節我們一起來看看如何由主活動跳轉到其他的活動,以及活動的返回,參數的傳遞。

在活動之間穿梭主要有兩種方式

1、使用顯式Intent2、使用隱式Intent

2.3.1顯示Intent的實現

button1.setOnclickListenter(new View.OnclickListener() { @Override public void onClick(View v) { Intent intent = new Intent(FirstActivity.this, SecondActivity.class); } startActivity(intent);});

點擊按鈕1之后由FirstActivity跳轉到SecondActivity,代碼非常簡單

2.3.2隱式Intent的實現

我們新建項目之后打開AndroidManifest.xml,發現主活動的代碼是這樣的

<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>

新建一個SecondActivity,它在xml文件中的代碼如下

<activity android:name=".SecondActivity"></activity>

與主活動相比缺了【intent-filter】標簽 【intent-filter】的字面意思就是【Intent過濾器】 所以我們可以給SecondActivity添加“過濾器”,讓別的活動可以找到它。

<activity android:name=".SecondActivity"> <intent-filter> <action android:name="com.example.activitytest.ACTION_START"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>

先給出一個代碼實例

button1.setOnclickListenter(new View.OnclickListener() { @Override public void onClick(View v) { Intent intent = new Intent("com.example.activitytest.ACTION_START"); } startActivity(intent);});

只有【action】和【categery】中的內容同時匹配上Intent中指定的action和category時,這個活動才能相應Intent。但上面這個例子沒有寫【category】,這是因為【category android:name=”android.intent.category.DEFAULT”/】是一種默認的category。

xml修改如下

<activity android:name=".SecondActivity"> <intent-filter> <action android:name="com.example.activitytest.ACTION_START"/> <category android:name="com.example.activitytest.MY_CATEGORY"/> </intent-filter> </activity>

代碼如下

button1.setOnclickListenter(new View.OnclickListener() { @Override public void onClick(View v) { Intent intent = new Intent("com.example.activitytest.ACTION_START"); } intent.addCategory("com.example.activitytest.MY_CATEGORY"); startActivity(intent);});

2.3.3隱式Intent的其它用法。

比如通過【action】打開網頁

button1.setOnclickListenter(new View.OnclickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.baidu.com")); startActivity(intent);});

同時,我們還可以在【intent-filter】標簽中再配置一個【data】標簽,用于更精確的指定當前活動能夠相應什么類型的數據。 【data】標簽中主要有以下配置內容

android:scheme ; 用于指定數據的協議部分,如上例的http部分android:host ; 用于指定數據的主機名部分, 如上例的www.baidu.comandroid:port ; 用于指定數據的端口部分,一般緊跟在主機名之后,上例中是默認的80端口android:path; 用于指定主機名和端口之后的東西android:mimeType; 用戶指定可以處理的數據類型,可以通過通配符來實現

具體的使用可以自己嘗試一下。

2.3.4 向下一個活動傳遞數據

代碼如下 在FirstActivity中

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);intent.putExtra("extra_data", "hello, sir");

在SecondActivity中

Intent intent = getIntent();String data = intent.getStringExtra("extra_data");

2.3.5 返回數據給上一個活動

在FirstActivity中代碼

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);startActivityForResult(intent, 1);

startActivityForResult方法中的1是傳過去的請求碼,唯一即可。

在SecondActivity中代碼

Intent intent = new Intent();intent.putExtra("data_return", "Hello, FirstActivity");setResult(RESULT_OK, intent);finish();

同時我們需要在FirstAcitivity中重寫 onActivityResult方法接受返回的數據。

@Override PRotected void onActivityResult(int requestCode, int resultCode, Intent data) { switch(requestCode) { if(resultCode == RESULT_OK) { String returndata = data.getStringExtra("return_data"); } } }

什么時候返回呢?可以自定義按鈕,點擊按鈕事件后返回。那安卓手機都會帶有返回鍵,如果用戶是通過返回鍵返回的怎么辦呢? 重寫onBackPressed方法就ok了。

@Override public void onBackPressed() { Intent intent = new Intent(); intent.putExtra("data_return", "Hello, FirstActivity"); setResult(RESULT_OK, intent); finish(); }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一级全毛片 | 国产精品午夜一区 | 国产一级桃视频播放 | 国产一级免费在线视频 | 中文字幕欧美日韩 | 亚洲射吧 | 欧美激情精品久久久久 | 激情亚洲一区二区 | 欧美一级视屏 | av在线免费电影 | 91网视频在线观看 | 草草视频免费 | 黄色免费av | 精国产品一区二区三区 | 欧美成人精品一区二区男人小说 | 久久精品小短片 | 久久亚洲美女视频 | 精品国产一区二区亚洲人成毛片 | 在线a | 午夜爱爱福利 | 欧美黄色三级视频 | 中文字幕精品在线视频 | 国av在线 | 成人h精品动漫一区二区三区 | 天天干导航 | 久久久经典视频 | 国产精品久久久免费观看 | 亚洲99 | 麻豆视频在线播放 | 毛片在线免费播放 | 日韩在线欧美在线 | 免费一级欧美大片视频 | 国产va在线观看 | 国产精品亚洲综合 | 久久久久久久爱 | 99ri在线| 91午夜在线观看 | 羞羞答答tv | 中文字幕免费在线观看视频 | 国产1区2区3区中文字幕 | 超碰97国产在线 |