1 显式跳转 ,2 隐式跳转 , 3 数据传递 , 4 数据回传
关键代码片段:
显式跳转:
Intent intent1=new Intent(MainActivity.this,Main2Activity.class); startActivity(intent1);
隐式跳转:
<intent-filter> <action android:name="sigh" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>//在manifest文件中注册你想要跳转的Activity
Intent intent2=new Intent(); intent2.setAction("sigh");//设置action动作和manifest文件中设置的一样 startActivity(intent2);
数据传递:
Intent intent3=new Intent(MainActivity.this,Main4Activity.class); intent3.putExtra("key","love");//要传递的数据以 {key: value}形式发送 startActivity(intent3);
接收方(Main4Activity)代码:
Intent intent=getIntent();
String data=intent.getStringExtra(“key”);//接收方以key获取对应value
数据回传:
[发送方处理 发送请求码,及接收回传回来的数据双码是否符合后接收数据]
Intent intent4=new Intent(MainActivity.this,Main5Activity.class); startActivityForResult(intent4,1);
接收代码部分:
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==1){
if (resultCode==1){
String string=data.getStringExtra("name");
String string2=data.getStringExtra("age");
textView_back.setText(string+":"+string2);
}
}
}
[接收方处理 要回传的数据,发送返回码+数据]
Intent intent=new Intent();
intent.putExtra("name",name);//同样是以key 对应value的形式发送要回传的数据
intent.putExtra("age",age);
setResult(1,intent);
finish();
做了个小demo整体归纳总结了一下:
数据回传:
MainActivity代码:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button bun_xian;
private Button bun_yin;
private Button bun_data;
private Button bun_databack;
private TextView textView_back;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
bun_xian = (Button) findViewById(R.id.bun_xian);
bun_yin = (Button) findViewById(R.id.bun_yin);
bun_data = (Button) findViewById(R.id.bun_data);
bun_databack = (Button) findViewById(R.id.bun_databack);
textView_back=(TextView)findViewById(R.id.txt_activity);
bun_xian.setOnClickListener(this);
bun_yin.setOnClickListener(this);
bun_data.setOnClickListener(this);
bun_databack.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bun_xian:
Intent intent1=new Intent(MainActivity.this,Main2Activity.class);
startActivity(intent1);
break;
case R.id.bun_yin:
Intent intent2=new Intent();
intent2.setAction("sigh");
startActivity(intent2);
break;
case R.id.bun_data:
Intent intent3=new Intent(MainActivity.this,Main4Activity.class);
intent3.putExtra("key","love");
startActivity(intent3);
break;
case R.id.bun_databack:
Intent intent4=new Intent(MainActivity.this,Main5Activity.class);
startActivityForResult(intent4,1);
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==1){
if (resultCode==1){
String string=data.getStringExtra("name");
String string2=data.getStringExtra("age");
textView_back.setText(string+":"+string2);
}
}
}
}
布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/bun_xian"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:onClick="click"
android:text="显式意图跳转"/>
<Button
android:id="@+id/bun_yin"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:onClick="click"
android:text="隐式意图跳转"/>
<Button
android:id="@+id/bun_data"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1.5"
android:onClick="click"
android:text="数据传递的跳转"/>
<Button
android:id="@+id/bun_databack"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:onClick="click"
android:text="数据回传的跳转"/>
<TextView
android:id="@+id/txt_activity"
android:textSize="55dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>