zoukankan      html  css  js  c++  java
  • 启动一个新的activity并携带数据,返回数据给上一个activity

    一、在启动一个新的activity的时候可以通过Intent携带数据,通过Intent.putExtra()方法通过键值对的形势装入数据。在新启动的activity中通过               getIntent()方法获取启动activity的Intent,并通过getxxxxExtra()获取传递的数据。

    二、如果希望被启动的新activity返回数据,则需要使用startActivityForResult()启动新的activity,方法携带两个参数,第二个为请求码,用于返回时判断是由哪个activity返回的,另一个是Intent.需要重写onActivityResult(int requestCode,int resultCode,Intent data)方法获取返回的数据。在新的activity中通过setResult()方法设置要回传的数据,该方法接收2个参数,第一个为返回码,只能是RESULT_OK和RESULT_CANCELED这两个值,第二个参数是一个携带数据的Intent,

      调用finish()方法可结束当前activity。

      示例代码如下:

      

    public class MainActivity extends Activity {
    Button btn1;
    TextView text1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    text1 = (TextView) findViewById(R.id.text1);
    btn1 = (Button) findViewById(R.id.button1);
    btn1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    String str1 = new String("我爱麦麦妈妈");
    Intent intent =new Intent(MainActivity.this,SecondActivity.class);
    intent.putExtra("dataSend",str1);
    startActivityForResult(intent,1);
    // startActivity(intent);
    }
    });
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(requestCode == 1){
    text1.setText(data.getStringExtra("backString"));
    }
    }
    }

    public class SecondActivity extends Activity {
    TextView text2;
    Button btn2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second_activity);
    Intent intent1 = getIntent();
    String getString = intent1.getStringExtra("dataSend");
    text2 = (TextView) findViewById(R.id.text2);
    text2.setText(getString);
    btn2 = (Button) findViewById(R.id.button2);
    btn2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    Intent intentTemp = new Intent();
    intentTemp.putExtra("backString","北极熊爱企鹅");
    setResult(1,intentTemp);
    finish();
    }
    });
    }
    }
  • 相关阅读:
    Redux其实很简单(原理篇)
    基于Docker的UI自动化初探
    视觉设计师的进化
    浅谈容器监控和网易云计算基础服务实践
    微服务实践沙龙-上海站
    知物由学 | 见招拆招,Android应用破解及防护秘籍
    6本互联网技术畅销书免费送(数据分析、深度学习、编程语言)!
    Lily-一个埋点管理工具
    ArcGIS 10 许可配置
    How to Programmatically Add/Delete Custom Options in Magento?
  • 原文地址:https://www.cnblogs.com/llxbl/p/6074206.html
Copyright © 2011-2022 走看看