Android使用Intent传输数据
程序员文章站
2022-04-24 22:35:37
...
利用Intent向下传输数据,从activity_main.xml中接收数据封装进Intent对象中,在activity_main2.xml中将数据输出。
- First_Activity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text1 = findViewById(R.id.text1);
btn_1 = findViewById(R.id.but_1);
btn_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String data = text1.getText().toString();
//获得文本框中的数据
Log.d(TAG,data); //进行打印验证
Intent intent = new Intent(MainActivity.this,Main2Activity.class);
intent.putExtra("data_key",data);
//通过putExtra()方法向下传输数据
startActivity(intent);
//使用Intent向下传输数据
}
});
}
- Second_Activity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Intent intent = getIntent();
//接收从First_Activity中传输的数据
String data = intent.getStringExtra("data_key");
//获得intent对象中的数据
text2 = findViewById(R.id.text2);
text2.setText(data);
//将数据设置在文本中
}
在Android中本身的Back键就可以实现对上一个活动数据的返回,但是当活动被销毁后,就需要通过startAcitivityForResult()方法来实现。
- Activit_First
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private Button btn_1;
private EditText text1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_1 = findViewById(R.id.but_1);
btn_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,Main2Activity.class);
startActivityForResult(intent,1);
//通过startAcitivityForResult方法来启动Activit_Second活动,传入的参数为1
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
text1 = findViewById(R.id.text1);
switch(requestCode){
case 1:
//此处的参数1要与启动活动Activity_Second时传入的参数一致
if(resultCode == RESULT_OK){
//确认请求码是否与请求码一致,判断数据的来源
String data1 = data.getStringExtra("data_return");
text1.setText(data1);
}
break;
}
}
}
- Activity_Second
public class Main2Activity extends AppCompatActivity {
private static final String TAG = "Main2Activity";
private EditText text2;
private Button btn_2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
text2 = findViewById(R.id.text2);
btn_2 = findViewById(R.id.btn_2);
btn_2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String data1 = text2.getText().toString();
Intent intent = new Intent();
intent.putExtra("data_return",data1);
//通过intent对象拿到活动中的数据
setResult(RESULT_OK,intent);
//该方法专门用于向上一个活动传递数据.RESULT_OK是请求码
finish(); //销毁当前活动
}
});
}
}
上一篇: python获取命令行参数的代码
下一篇: SpringData JPA复合主键
推荐阅读
-
Android编程实现全局获取Context及使用Intent传递对象的方法详解
-
Android编程开发之打开文件的Intent及使用方法
-
android使用url connection示例(get和post数据获取返回数据)
-
android教程之intent的action属性使用示例(intent发短信)
-
Android数据传输中的参数加密代码示例
-
使用post方法实现json往返传输数据的方法
-
Android编程实现使用Intent传输包含自定义类的ArrayList示例
-
在Android系统中使用gzip进行数据传递实例代码
-
JQuery中使用ajax传输超大数据的解决方法教程
-
Android Intent传递数据大小限制详解