RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
Android学习—Activity之间数据传递之Intent数据传递-创新互联

Intent意图 可用于Activity之间的数据传递,一般可分为下面两种情况,从当前Activity传递到目标Activity后有无返回值:

创新互联于2013年创立,先为启东等服务建站,启东等地企业,进行企业商务咨询服务。为启东企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

1.传递后无返回值的情况:

   在起始Activity中,发送数据
     protected void onCreate(Bundle saveInstanceState){
         super.onCreate(saveInstanceState);
         setContentView(R.layout.thisactivity);
          Intent intent = new Intent();
         //设置起始Activity和目标Activity,表示数据从这个Activity传到下个Activity
         intent.setClass(ThisActivity.this,TargetActivity.class);
         //绑定数据
         intent.putExtra("username",username);//也可以绑定数组
         intent.putExtra("userpass",userpass);
         //打开目标Activity
         startActivity(intent);
      }
    在目标Activity中,接收数据:
     protected void onCreate(Bundle saveInstanceState){
         super.onCreate(saveInstanceState);
         setContentView(R.layout.targetactivity);     
         //获得意图
         Intent intent = getIntent();
        //读取数据
        String name = intent.getStringExtra("username");
        String pass = intent.getStringExtra("userpass);
     }
也可以适用Bundle(捆)
    在起始Activity中,发送数据:
     protected void onCreate(Bundle saveInstanceState){
         super.onCreate(saveInstanceState);
         setContentView(R.layout.thisactivity);     
         Intent intent = new Intent();
         //设置起始Activity和目标Activity,表示数据从这个Activity传到下个Activity
         intent.setClass(ThisActivity.this,TargetActivity.class);
         //一次绑定多个数据
        Bundle bundle = new Bundle();
        bundle.putString("username",username);
         bundle.putString("userpass",userpass);
         intent.putExtras(bundle);
        //打开目标Activity
        startActivity(intent);
     }
    在目标Activity中,接收数据:
     protected void onCreate(Bundle saveInstanceState){
         super.onCreate(saveInstanceState);
         setContentView(R.layout.targetactivity);     
         //获得意图
         Intent intent = getIntent();
         //读取数据
          Bundle bundle = intent.getExtras();
         String name = bundle.getString("username");
         String pass = bundle.getString("userpass");
     }

2.传递后有返回值的情况:

当需要从目标Activity回传数据到原Activity时,可以使用上述方法定义一个新的Intent来传递数据,也可以使用startActivityForResult (Intent intent, int requestCode);方法。

   在起始Activity中,发送数据:
     protected void onCreate(Bundle saveInstanceState){
         super.onCreate(saveInstanceState);
         setContentView(R.layout.thisactivity);     
         Intent intent = new Intent();
        //设置起始Activity和目标Activity,表示数据从这个Activity传到下个Activity
        intent.setClass(ThisActivity.this,TargetActivity.class);
        //绑定数据
        intent.putExtra("username",username);//也可以绑定数组
        intent.putExtra("userpass",userpass);
        //打开目标Activity
         startActivityForResult(intent,1);
     }
     //需要重写onActivityResult方法
     protected void onActivityResult(int requestCode, int resultCode, Intent intent){
        super.onActivityResult(requestCode,resultCode,intent);
         //判断结果码是否与回传的结果码相同
        if(resultCode == 1){
           //获取回传数据
           String name = intent.getStringExtra("name");
            String pass = intent.getStringExtra("pass);
            //对数据进行操作
           ......
         }
    在目标Activity中,接收数据:
     protected void onCreate(Bundle saveInstanceState){
         super.onCreate(saveInstanceState);
         setContentView(R.layout.targetactivity);     
         //获得意图
         Intent intent = getIntent();
         //读取数据
         String name = intent.getStringExtra("username");
         String pass = intent.getStringExtra("userpass);
         //从EditText中获取新的数据给name和pass
         name = editText1.getText().toString();
         pass = editText2.getText().toString()
         //数据发生改变,需要把改变后的值传递回原来的Activity
         intent.putExtra("name",name);
        intent.putExtra("pass",pass);
        //setResult(int resultCode,Intent intent)方法
        setResult(1,intent);
        //销毁此Activity,摧毁此Activity后将自动回到上一个Activity
        finish();
}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:Android学习—Activity之间数据传递之Intent数据传递-创新互联
新闻来源:http://lswzjz.com/article/cdggdh.html