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();
    }
    });
    }
    }
  • 相关阅读:
    【NOIp 2004】【DFS+剪枝】虫食算
    【NOIp 2014】【二维dp】飞扬的小鸟
    【NOIp 2003】【树结构·搜索】传染病防治
    【模板】匈牙利算法——二分图最大匹配
    【模板】网络流——Dinic
    【NOIp复习】STL
    【NOIp 2002】【BFS+STL】字串变换
    【vijos】【贪心】最小差距
    TensorFlow 矩阵变量初始化后的计算例子
    TensorFlow 变量初始化
  • 原文地址:https://www.cnblogs.com/llxbl/p/6074206.html
Copyright © 2011-2022 走看看