我是iOS 轉Android 的佛嬉,做一些自己的學習記錄.
Intent
Intent 有很多的作用,由于初次嘗試Android,暫時知道Intent可以用于界面之前的切換就ok了击狮。
顯示Intent
//初始化Intent, 表示從FirstActivity 到 SecondActivity
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
//執(zhí)行 intent實例
startActivity(intent); //若要返回上一個類坦袍,可點擊右上角back廓八。或者手動代碼 finish();銷毀當前activity
隱式Intent
//在AndroidManifest.xml中添加
<activity android:name = ".SecondActivity">
<intent - filter>
<action android:name="com.example.activitytest.ACTION_START" />
<category android:name="android.intent.category.DEFAULT" />
</intent - filter>
</activity>
//當action 和 category同時匹配成功才能啟動下一個activity,這里能調用時因為有android.intent.category.DEFAULT默認category
Intent intent = new Intent("com.example.activitytest.ACTION_START");
//這樣調用category需要在AndroidManifest.xml中添加 <category android:name="android.intent.category.My_CATEGORY" />
//Intent.addCategory("com.example.activitytest.My_CATEGORY");
startActivity(intent);
調用系統(tǒng)瀏覽器
//intent的action是Intent.ACTION_VIEW
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
新建一個ThirdActivity
<activity android:name=".ThridActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http"/>
//intent 響應data 標簽中滿足http協(xié)議的activity,這樣執(zhí)行上面調用瀏覽器intent 就會出現(xiàn)選擇列表
</intent-filter>
</activity>
打電話
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
向下一個activity傳遞數(shù)據
//FirstActivity
String data = "Hello SecondActivity";
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtra("extra_data",data);//extra_data 是鍵,data是要傳遞的值讯榕,這里data是字符串
startActivity(intent);
//SecondActivity中獲取值
Intent intent = getIntent();
String data = intent.getStringExtra("extra_data");//獲取傳過來的值
Log.v("SecondActivity",data);//打印
返回數(shù)據給上一個活動
//FirstActivity
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivityForResult(intent,1);
//SecondActivity
Intent intent = new Intent();
intent.putExtra("data_return","Hello First");//putExtra(鍵,值)
setResult(RESULT_OK,intent);
finish();
//FirstActivity 重寫onActivityResult 來接收數(shù)據
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
String returnData = data.getStringExtra("data_return");
Log.v("FirstActivity", returnData);
}
}
}
//SecondActivity 通過back鍵回到FirstActivity
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = new Intent();
intent.putExtra("data_return","Hello First");
setResult(RESULT_OK,intent);
finish();
}
//通過左上actionBar 返回按鈕
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
}
return super.onOptionsItemSelected(item);
}