Intent
一、intent可以理解爲信使(意圖)
由intent來協助完成Android各個組件之間的通訊
二、Intent實現頁面之間的跳轉
1.startActivity(intent)—直接啓動一個頁面
2.startActivityForRsult(intent,requestCode)—有返回值啓動一個頁面
onActivityResult(int requestCode,int resultCode,Intent data);該方法用於A頁面接收B頁面回傳的數據
setResult(resultCode,data);該方法用於B頁面向A頁面傳輸數據
第一個頁面(Activity)
public class FirstActivity extends Activity {
private TextView tv;
private Button bt1,bt2;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.firstactivity);
bt1 = (Button) findViewById(R.id.Button1);
bt2 = (Button) findViewById(R.id.Bautton2);
tv = (TextView)findViewById(R.id.TextView1);
bt1.setOnClickListener(new View.OnClickListener() {
//通過第一種方式startActivity實現頁面跳轉
@Override
public void onClick(View view) {
/*
* 第一個參數:上下文對象this
* 第二個參數:目標文件
*/
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent);
}
});
bt2.setOnClickListener(new View.OnClickListener() {
//通過第二種方式startActivityForRsult實現頁面跳轉
@Override
public void onClick(View view) {
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
/*
* 第一個參數是Intent對象
* 第二個參數是請求的一個標識
* */
startActivityForResult(intent,1);
}
});
}
/*
* 通過startActivityForRsult跳轉,接收返回數據的方法
* requestCode:請求的標識
* resultCode:第二個頁面返回的標誌
* data:第二個頁面回傳的數據
* */
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1 && resultCode == 2){
String content = data.getStringExtra("data");
tv.setText(content);
}
}
}
第二個頁面(Activity)
public class SecondActivity extends Activity {
private String content = "你好";
private Button bt;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.secondactivity);
bt = (Button)findViewById(R.id.Button);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent data = new Intent();
data.putExtra("data",content);
setResult(2,data);
//結束當前頁面
finish();
}
});
}
}
三、運行效果
在第一個頁面點擊使用第一種跳轉方式的Button時,跳轉到第二個頁面,使用第二個頁面的返回Button可以回到原頁面
在第一個頁面點擊使用第二種跳轉方式的Button時,跳轉到第二個頁面,使用第二個頁面的返回Button可以把第二個頁面的數據返回到第一個頁面