Android学习笔记——Activity之间传递数据
来源:互联网 发布:scp 端口号 编辑:程序博客网 时间:2024/05/31 05:28
在Activity中,经常有需要传输数据的时候,两个活动之间传输数据使用Intent来传递数据。
Intent可以携带数据,intent有许多的putextra方法的重载,可以存入数据。然后在被启动的活动中可以使用getIntent()方法来获得启动Activity的intent,然后就可以通过这个Intent来获取数据。
public class MainActivity extends AppCompatActivity { Button button; EditText editText; public static final String SEND_MESG = "MSG"; public static final int RESPONSE_CODE = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.btn_startactivity); editText = (EditText) findViewById(R.id.et_mssage); button.setOnClickListener(new View.OnClickListener() {//设置点击时间 @Override public void onClick(View view) Intent intent = new Intent(MainActivity.this, SecondActivity.class); intent.putExtra(SEND_MESG, editText.getText().toString());//使用Inent传入Sting数据 startActivityForResult(intent, RESPONSE_CODE);//使用startActivityForResult()开启一个新的活动,并且加入请求码,用以判断是哪个活动开启了新活动 } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { //这个方法会在返回新的活动返回数据的时候调用,第一个参数是请求码,第二个参数是返回码,第三个参数是携带了回传数据的Intent if (requestCode == MainActivity. RESPONSE_CODE) switch (resultCode) { case MainActivity.RESULT_OK: { Toast.makeText(MainActivity.this, data.getStringExtra("data_return"), Toast.LENGTH_SHORT).show(); } } } }
现在来看第二个活动
public class SecondActivity extends AppCompatActivity { TextView textView; EditText editText; Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); button = (Button) findViewById(R.id.btn_response); editText = (EditText) findViewById(R.id.et_return); textView = (TextView) findViewById(R.id.tv_show); Intent intent = getIntent(); String s = intent.getStringExtra(MainActivity.SEND_MESG); textView.setText(s); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(); intent.putExtra("data_return",editText.getText().toString());//同样,在Intent中放入EditText中输入的数据 setResult(MainActivity.RESULT_OK,intent); //然后再调用setResult()方法设置返回值 finish(); } }); } }
RequestCode的作用
请求码的值是由自已设定的,用来标识请求来源。例如:一个Activity有两个按钮,点击这两个按钮都会打开同一个Activity,不管是那个按钮打开新Activity,当这个新Activity关闭后,系统都会调用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。在onActivityResult()方法如果需要知道新Activity是由那个按钮打开的,并且要做出相应的处理;
ResutCode的作用
如果用startActivityForResult()方法打开多个不同的Activity,当这些新Activity关闭后,系统都会调用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。为了知道返回的数据来自于哪个新Activity,在onActivityResult()方法中可以这样做(ResultActivity和NewActivity为要打开的新Activity):
简单的说,RequestCode是新活动用来判断哪个活动开启的它,ResultCode是用来判断返回的数据来自哪个新活动
- Android学习笔记——Activity之间的数据传递
- Android学习笔记——Activity之间传递数据
- Android学习笔记——4种Activity之间的数据传递方式的实现
- android学习笔记之七在Activity之间传递数据
- Android学习笔记-两个Activity之间传递数据
- Android学习备忘009——Activity之间用Intent传递数据
- Android学习备忘010——使用静态变量在Activity之间传递数据
- Android——不同activity之间数据传递
- Android——Activity页面之间的数据传递
- Android activity之间传递数据
- android activity之间传递数据
- Android Activity 之间传递数据
- Android Activity之间数据传递
- [Android新手学习笔记05]-如何进行活动Activity之间的跳转以及数据传递
- Android 笔记-Fragment 与 Activity之间传递数据
- Android笔记Fragment与Activity之间传递数据
- Android笔记Fragment与Activity之间传递数据
- Android开发笔记---不同activity之间的数据传递
- 关于map的一些遍历方法
- 动态规划----最长上升子序列问题
- RTMP 协议学习总结
- android studio module引用本地aar
- JSON web token@06#Example Unsecured JWT
- Android学习笔记——Activity之间传递数据
- Spring Batch 之 Sample(固定长格式文件读写)(六)
- 后台返回状态码,js验证跳转登录
- mysql中主外键关系
- (获取应用的包名/应用名等信息)打开、安装和卸载应用
- JSON web token@07#Creating and Validating JWTs
- [Leetcode] Combination Sum
- Spring Batch 之 Sample(复合格式文件的读、多文件的写)(七)
- JSON web token@08#Implementation Requirements