Actity间的数据传递

2019-06-21  本文已影响0人  木木不哭_8be4

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>
上一篇 下一篇

猜你喜欢

热点阅读