• 启动一个新的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();
    }
    });
    }
    }
  • 相关阅读:
    九度OJ 1014:排名 (排序)
    九度OJ 1013:开门人和关门人 (排序)
    九度OJ 1012:畅通工程 (最小生成树)
    Java高级工程师(一)
    FastJson JSON对象及JavaBean之间的相互转换
    webservice 和 RESTful API 接口调用
    [转] jqGrid 属性 事件 合集
    Jqgrid 事件重新设置行数据, 以及 Thymeleaf js下获取model的值
    mybatis配置文件说明--- 注重顺序
    美丽的for循环语句
  • 原文地址:https://www.cnblogs.com/llxbl/p/6074206.html
Copyright © 2020-2023  润新知