- 前言
- 步骤
- 一、总步骤
- 1.新建一个Activity
- 1.绑定包
- 2.Activity(1)
- 导入
- 3.Activity(2)
- 导入
- 2.创建xml控件
- Activity(1)
- string.xml文件
- Activity(2)
- 3.创建控件变量
- Activity(1)
- Activity(2)
- Intent方式
- 二、正向传输
- 逻辑:
- 1.传入数据
- 2.得到数据
- 定义Tag,方便测试
- onCreate方法内
- 三、反向传输
- 逻辑:
- 1.请求数据,发送请求码
- 2.返回数据,发送返回码
- 处理数据
- 定义Tag,方便测试
- 主类中重写onActivityResult
- 注意
- 最后
- 学习笔记,仅供参考
Activity转换并进行静态数据传输的正向传输和反向传输实例
步骤 一、总步骤 1.新建一个Activity 1.绑定包package com.example.test2; //包名2.Activity(1) 导入
import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.nfc.Tag; import android.os.Bundle; import android.util.Log; import android.view.View; import com.google.android.material.bottomnavigation.BottomNavigationView; //导入3.Activity(2) 导入
import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.nfc.Tag; import android.os.Bundle; import android.util.Log; import android.view.View; import com.google.android.material.bottomnavigation.BottomNavigationView; import java.util.Arrays;2.创建xml控件 Activity(1)
string.xml文件
Activity(2)test2 touch
3.创建控件变量 Activity(1)
BottomNavigationView getBtn;
//创建控件变量
Activity(2)
BottomNavigationView returnBtn;
//创建控件变量
Intent方式
二、正向传输
逻辑:
Activity(1)主动传入数据到 Activity(2), Activity(2)得到数据并且log出来
1.传入数据//第一个activity传入
getBtn.findViewById(R.id.getBtn);
//变量绑定layout控件id
getBtn.setOnClickListener(new View.OnClickListener() {
//设置onclick点击监听
@Override
public void onClick(View v) {
//onclick监听方法
Intent intentTest = new Intent(MainActivity.this,intentActivity.class);
//传输数据,putExtra方法
intentTest.putExtra("key_data1","hello");
//数据key,数据类型
intentTest.putExtra("key_data2",2021);
//数据key,数据类型
startActivity(intentTest);
//跳转
}
});
2.得到数据
定义Tag,方便测试
final static String Tag = "hello";
//设置一个最终静态的string类型的Tag的默认值,方便日志打印的调用
onCreate方法内
//得到数据
Intent intentTestGet = getIntent();
//getIntent方法得
String[] dataS = intentTestGet.getStringArrayExtra("key_data1");
//变量dataS储存Intent的getStringArrayExtra方法得到的String数据
int dataI = intentTestGet.getIntExtra("key_data2",0);
//变量dataI储存Intent的getIntExtra方法得到Int的数据
//使用数据
Log.e(Tag, Arrays.toString(dataS));
Log.e(Tag,String.format("dataI:%d",dataI));
三、反向传输
逻辑:
Activity(1)主动请求 Activity(2)的数据,且发送请求码, Activity(2)设置静态数据返回,且发送返回码
1.请求数据,发送请求码 getBtn.findViewById(R.id.getBtn);
//变量绑定layout控件id
getBtn.setOnClickListener(new View.OnClickListener() {
//设置onclick点击监听
@Override
public void onClick(View v) {
//onclick监听方法
//显性跳转
Intent intentTest = new Intent(MainActivity.this,intentActivity.class);
startActivityForResult(intentTest,100);
//可以不用intent方式
//startActivityForResult请求得到数据,设置请求码100
startActivity(intentTest);
//跳转
}
});
2.返回数据,发送返回码
//返回数据
returnBtn.findViewById(R.id.returnBtn);
returnBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentReturn = new Intent();
//创建新的intent对象
intentReturn.putExtra("key_1","hello,我返回啦");
//设置数据
setResult(RESULT_OK,intentReturn);
//返回数据,设置结果码RESULT_OK
finish();
//从被请求数据方返回到请求数据方
}
});
处理数据
定义Tag,方便测试
final static String Tag = "hello";
//设置一个最终静态的string类型的Tag的默认值,方便日志打印的调用
主类中重写onActivityResult
@Override
//重写父类的onActivityResult方法用于得到数据
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
//请求码和结果码被传回,回调函数
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 100) {
//比对请求码
if (resultCode == RESULT_OK) {
//判断结果码
assert data != null;
//不为空
String dataGet = data.getStringExtra("key_1");
//设置变量获取参数data调用的getStringExtra方法得到的key_1数据
Log.e(Tag, dataGet );
//使用数据
}
}
}
注意
测试请分开测试,两者同时运行,会发生占用错误
最后 学习笔记,仅供参考


