android中界面传递数据(intent数据的传递)

使用intent传递数据简单的实现:

1、将数据传递到下个界面显示

2、将下个界面数据返回上一级界面

 

1、首先activity_layout中一个简单按钮

创建一个dataActivitydata_layout布局:

data_layout放置一个按钮和一个文本:




    

MainActivity.java:

{
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_layout);
        //按钮id
        Button btn=findViewById(R.id.btn);
        //点击事件
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //intent跳转
                Intent in=new Intent(MainActivity.this, DataActivity.class);
                //putExtra传入2个参数第一个是键名,第二个则是要传递的数据
                in.putExtra("data","hello android");
                //启动intent
                startActivity(in);
                //
          
            }
        });
    }

上面可以看到in.putExtra已经存入了数据可以到dataActivity中获取数据了

  setContentView(R.layout.data_layout);
        //id
        TextView tv=findViewById(R.id.data_tv);
        //获取启动的intent
        Intent inn=getIntent();
        //取出intent中数据键名为data的
        String data=inn.getStringExtra("data");
        //设置文本
        tv.setText(data);

ok完成

 

2、将数据返回到上个界面

MainActivity:

  //按钮id
        Button btn=findViewById(R.id.btn);
        //点击事件
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //intent跳转
                Intent in=new Intent(MainActivity.this, DataActivity.class);
                //启动intent
                startActivityForResult(in,1);
            }
        });
    }

DataActivity点击按钮将数据返回

 Button btn=findViewById(R.id.data_btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent in=new Intent();
                //写入数据
                in.putExtra("number","返回数据成功");
                //第一个参数是执行的结果第二个参数传递intent
                setResult(RESULT_OK,in);
                //关闭
                finish();
            }
        });

再去MainActivity接收传递的数据:

重写方法onActivityResult

 //参数1、传递的唯一值 2、DataActivity中设置的执行结果 3、数据
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        switch (requestCode){
            //之前设置的唯一值1
            case 1:
                if (resultCode==RESULT_OK){
                    //获取数据
                    String name=data.getStringExtra("number");
                    //打印log
                    Log.i("TAG",name);
                }
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

完成

你可能感兴趣的:(android中界面传递数据(intent数据的传递))