Android实现intent跳转界面传递数据(2)——onActivityResult方法接收返回值
来源:互联网 发布:与该网络签署协议 编辑:程序博客网 时间:2024/05/16 12:11
当我们已经从主界面跳转到写一个界面之后,当我们返回倒主界面的时候,我们可以从第二个界面返回一些参数,在当前页面使用,这个时候我们就可以在第二个界面里面使用
setResult()方法来实现,其中,setResult()中的方法可以有两种,第一个是setResult(int resultcode)另一种是setResult(int resultcode,Intent intent)下面我们都来实现一下,先看第二个界面的java处理部分:
import android.app.Activity;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;public class SecondActivity extends Activity { private Button btnFinish; private ButtonListener buttonListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); initView(); setListener(); if(getIntent()!=null){ Bundle bundle = getIntent().getBundleExtra(MainActivity.BUTTON_TITLE); if(bundle!=null){ String buttonTitle = bundle.getString(MainActivity.BUTTON_TITLE); btnFinish.setText(buttonTitle); } //String buttonTitle=getIntent().getStringExtra(MainActivity.BUTTON_TITLE); } } public void initView(){ btnFinish= (Button) findViewById(R.id.btn_finish); } public void setListener(){ buttonListener = new ButtonListener(); btnFinish.setOnClickListener(buttonListener); } class ButtonListener implements View.OnClickListener{ @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn_finish: Intent intent = new Intent(); intent.putExtra("chen","chen"); setResult(RESULT_OK,intent); finish(); break; } } }}在上述代码中,就是传递了一个RESULT_OK和一个自己创建的intent,intent里面就是自己要传回去给主界面来使用的值。
然后看我们的MainActivity里面的处理方式,首先要重写
protected void onActivityResult(int requestCode, int resultCode, Intent data)
这个方法就是在从前一个界面返回来的时候,索要调用的方法,其中requestCode是我们从主界面跳转到第二个界面的时候所传递的int类型,resultCode就是从第二个界面返回到主界面的时候,所接收的resultCode,也就是前面setResult中国的RESULT_OK,data就是传递进来的intent。
如果我们使用了这个方法,那么我们在跳转界面的时候,就不能使用startActivity(intent)这个方法来实现跳转了,要使用
startActivityForResult(intent,999);这个方法来进行传递。下面来展示全部的java代码:
import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends AppCompatActivity { private Button btnToSecond; private ButtonListener buttonListener; public static final String BUTTON_TITLE = "button_title"; private TextView tvShow; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); setListener(); } public void initView(){ btnToSecond= (Button) findViewById(R.id.btn_toSecond); tvShow= (TextView) findViewById(R.id.tv_show); } public void setListener(){ buttonListener = new ButtonListener(); btnToSecond.setOnClickListener(buttonListener); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == 999 && resultCode == RESULT_OK){ Toast.makeText(getApplicationContext(),"返回成功",Toast.LENGTH_SHORT).show(); if(data != null){ tvShow.setText(data.getStringExtra("chen")); } } } class ButtonListener implements View.OnClickListener{ @Override public void onClick(View v) { switch(v.getId()){ case R.id.btn_toSecond: Intent intent=new Intent(MainActivity.this,SecondActivity.class); //intent.putExtra(BUTTON_TITLE,"chen"); Bundle bundle = new Bundle(); bundle.putString(BUTTON_TITLE,"chen"); intent.putExtra(BUTTON_TITLE,bundle); //intent.putExtra("cc",new User()); //startActivity(intent); startActivityForResult(intent,999); break; } } }}
0 0
- Android实现intent跳转界面传递数据(2)——onActivityResult方法接收返回值
- Android实现intent跳转界面传递数据(1)
- Intent界面跳转,数据传递 初级
- Android 使用Intent实现Activity跳转和数据传递
- Intent传递值,接收返回值
- 【Android】使用Intent实现数据传递之返回结果
- android onActivityResult()接收返回数据为null的解决方案
- Intent--接收返回数据
- Android安卓——Intent(2)传递数据
- android基础学习6——intent实现数据传递
- android intent传递数据,返回函数
- Android - Intent - 界面跳转
- Android - Intent - 界面跳转
- Android onActivityResult获取返回值的方法
- Android界面跳转与数据传递
- Android 页面跳转传递参数及页面返回接收参数
- Android onActivityResult不返回resultCode和intent
- 跳转界面传递数据
- 并发和并行的区别
- C#--01--串口通信
- 你不可不知的 React Native 混合用法(Android 篇)
- linux中inittab文件详解
- [HTML] 图片标签、绝对路径 和 相对路径
- Android实现intent跳转界面传递数据(2)——onActivityResult方法接收返回值
- 刚体之间挤压造成的抖动问题
- 14 list与vector
- 34. Search for a Range [LeetCode]
- Filter实现表单登陆过滤验证
- POJ,3713 Transferring Sylla
- UVa 122 (紫书)
- 在TI提供的USB dongle 到底是什么?
- JVM学习:垃圾回收器学习(1)——认识垃圾回收器