Actity间的数据传递有两种方式,第一种是A传递给B,本文主要介绍的是第二种,FirstActity启动SecondActity,然后SecondActity收到消息后可以进行一些数据处理返回给FirstActity
直接看代码吧~
public class FirtstActivity extends AppCompatActivity {
Button open;
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_firtst);
open=findViewById(R.id.btn_open);
tv=findViewById(R.id.tv_data);
open.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(FirtstActivity.this,SecondActity.class);
//第二个参数是 requestCode请求码 用于在之后的回调中判断数据的来源
startActivityForResult(intent,1);
}
});
}
//此处requestCode和startActivityForResult(intent,1)内的requesCode相对应
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
String returnedData = data.getStringExtra("data");
tv.setText(String.valueOf(returnedData));
}
break;
default:
}
}
}
activity_firtst.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="打开第二个Actity"
android:id="@+id/btn_open"/>
<TextView
android:hint="回调的信息"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tv_data"/>
<!-- <Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="拨打110086"
android:id="@+id/btn_call"/>-->
</LinearLayout>
public class SecondActity extends AppCompatActivity {
Button open;
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.actity_second);
open = findViewById(R.id.btn_open_first);
open.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(SecondActity.this,FirtstActivity.class);
intent.putExtra("data","come from SecondActity ====( •̀ ω •́ )y");
setResult(RESULT_OK,intent);
finish();
}
});
}
}
actity_second.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="打开第yi个Actity"
android:id="@+id/btn_open_first"/>
</LinearLayout>
网友评论