Android实现两个Activity界面的跳转并传值

    Android实现Activity两个界面的跳转和传值

 

              前些天试着做了一个音乐播放器,很简单的一个程序,不过里面涉及到的知识需要我好好总结下。

              首先我们首先说下两个Activity之间的跳转,不涉及传值。这里涉及到一个异常强大的Intent类,顾名思义,它的字面意思是“意图”,他异常重要,我们知道Android有四大核心组件 Activity、Service、Broadcast Receiver和Content Provider,略去Content Provider不提,剩下的三组组件靠的就是通过Intent所以说Intent的重要性你就可以知道的,真不是盖的!!!之前的博客中已经提到过了,可以通过它来实现打电话,发短信的功能。

            实现两个Activity界面的跳转主要是用到Intent中的setclass(this,otherActivity.class)方法和Activity的startActivity()方法。

[java]  view plain  copy
  1. Intent intent=new Intent();  
  2. intent.setClass(MainActivity.this,MyActivity.class);  
  3. this.startActivity(intent);  

          当然这样的几行代码并不能实现从MainActivity的界面到MyActivity界面的跳转,

       我们还要做的工作是要在AndroidManifest.xml中注册一个MyAcitivity以获得权限
        

[java]  view plain  copy
  1. <activity   
  2.      android:name="com.example.helloworld.MyActivity"  
  3.      android:label="@string/app_name" >              
  4. </activity>  

 下面是我自己写的学习步骤

 

[java]  view plain  copy
  1. c.通过Intent实现两个手机界面的跳转方法:  
  2.       Frist,创建一个新的Activity,继承super.onCreate()方法  
  3.       Second,在layout文件夹下创建一个新的activaty_my.xml文件实现LinearLayout,  
  4.              然后在界面添加自己想要在这个界面上出现的控件  
  5.           setContentView(R.layout.activaty_my);  
  6.     Third,在MainActivity中的按钮监听器中加入如下代码:  
  7.          Intent intent=new Intent();  
  8.          intent.setClass(MainActivity.this,MyActivity.class);  
  9.         this.startActivity(intent);  
  10.     Fourth,要在AndroidManifest.xml中注册一个Acitivity  
  11.         <activity   
  12.             android:name="com.example.helloworld.MyActivity"  
  13.             android:label="@string/app_name" >              
  14.            </activity>  

 

 实现从一个Activity向另一个Activity传值,在传值的时候主要用到intent的putExtra()方法,下面是该方法的截图

从上面的方法截图中那个可以看出,该方法可以传递的值的类型有很多,下面是从MainActivity的界面到PlayerActivity界面的跳转传递一个整数值和一个字符串的代码:

[java]  view plain  copy
  1. MainActivity中的代码  
  2. Intent intent = new Intent();  
  3. intent.setClass(MainActivity.this, PlayerActivity.class);  
  4. //放入整数  
  5. intent.putExtra("key"5);  
  6. //放入字符串  
  7. intent.putExtra("str""字符串");                
  8. startActivity(intent);  
  9.   
  10.   
  11. PlayerActivity中的代码  
  12. Intent intent = this.getIntent();  
  13. // 获得整数  
  14. intMusicIndex = intent.getIntExtra("key"0);  
  15. //获得字符串  
  16. System.out.println(intent.getStringExtra("str"));  

  

  我们还可以通过 Bundle来包装数据再使用putExtra()来进行数据的传递

[java]  view plain  copy
  1. MainActivity中的代码:  
  2.   
  3. Intent intent = new Intent();  
  4. intent.setClass(MainActivity.this, PlayerActivity.class);  
  5.                   
  6. Bundle bundle1=new Bundle();  
  7. bundle1.putInt("bundle"33);  
  8.  //两个参数  
  9. intent.putExtra("intent", bundle1);  
  10.                    
  11. Bundle bundle2=new Bundle();  
  12. bundle2.putString("ss""无参");  
  13. //一个参数  
  14. intent.putExtras(bundle2);  
  15.   
  16. startActivity(intent);    
  17.   
  18. 注意一个是  
  19. putExtra,另一个是putExtras  
  20.   
  21.   
  22.   
  23.   
  24. PlayerActivity中的代码:  
  25. Intent intent = this.getIntent();  
  26. //获得指定的Bundle  
  27. Bundle bundle0=intent.getBundleExtra("intent");  
  28. int i=bundle0.getInt("bundle");  
  29. System.out.println(i);  
  30. //默认      
  31. Bundle bundle=intent.getExtras();  
  32. System.out.println(bundle.getString("ss"));  
  33.   
  34. 注意一个是getBundleExtra,一个是getExtras
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值