Android Intent意圖的常用使用方法

一個intent就是對將要執行的操作的抽象描述,程序跳轉和參數的傳遞都需要intent

android的核心應用和靈魂

Intent可以給按鈕添加聯繫其他應用的內容比如,單擊按鈕直接撥打電話,單擊按鈕發送短息等等,但是這些功能需在manifest裏邊註冊需求。

撥打電話

intent.setAction(Intent.ACTION_CALL);

intent.setData(Uri.parse("tel:18292651821"));

發送短息:

intent.setAction(Intent.ACTION_SENDTO);

intent.setData(Uri.parse("smsto:5554"));

intent.putExtra("sms_body", "I'm HuBaoquan1");

 

 

啓動另一個activity

注意一個佈局文件都有一個對應的activity類管理,所以創建第二個界面時要同時創建佈局文件xml和管理佈局文件的類java,並且新的activity類要在manifest中申明activity

<activity

android:name="com.hbq.intentdemo.SecondActivity"

android:label="second" >

>

//主(mainactivity)界面下啓動secondactivity

intent.setClass(MainActivity.this, SecondActivity.class); 

startActivity(intent);//啓動activity意圖

給被啓動的activity傳遞參數

//向將要啓動的界面傳遞參數,key值爲str,數據爲"To SecondActivity data!"

intent.putExtra("str", "To SecondActivity data!"); 

被啓動的activity接收數據:

//接收數據時需新建intent對象,獲得intent

Intent intent = getIntent();

//通過intent.getExtras()返回bundle對象

Bundle bundle = intent.getExtras();

//通過bundle對象和key值獲得傳遞進來的數據 

String string = bundle.getString("str"); 

 

返回數據給啓動它的activity:

//同樣要通過intent對象

Intent intent = new Intent();

//設置要返回的key值和數據

intent.putExtra("back", "back data");

//啓用返回的intent

setResult(RESULT_CODE, intent);

//銷燬當前activity

finish();

在主activity中還要重寫onActivityResultint requestCode, int resultCode, Intent data)方法接收返回的數據,還要比較返回碼和請求碼:

if (requestCode == REQUEST_CODE  )
{
if( resultCode == SecondActivity.RESULT_CODE)
{
Bundle bundle = data.getExtras();
String string = bundle.getString("back");
Toast.makeText(MainActivity.this, string, Toast.LENGTH_LONG).show();
}
}  


注意在數據傳遞的過程中需要設定請求碼,和返回碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章