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();
    }
    });
    }
    }
  • 相关阅读:
    c#自动更新+安装程序的制作
    VS2013项目受源代码管理向源代码管理注册此项目时出错
    WinDbg配置和使用基础
    InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序)
    PowerDesigner 如何生成数据库更新脚本
    用户故事(User Story)
    Troubleshooting Record and Playback issues in Coded UI Test
    Coded UI
    compare two oracle database schemas
    How to: Use Schema Compare to Compare Different Database Definitions
  • 原文地址:https://www.cnblogs.com/llxbl/p/6074206.html
Copyright © 2011-2022 走看看