您的位置:首页 > 移动开发 > Android开发

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

2018-01-19 13:11 573 查看
    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

Intent intent=new Intent();  

intent.setClass(MainActivity.this,MyActivity.class);  

this.startActivity(intent);  

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

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

        

[java] view
plain copy

<activity   

     android:name="com.example.helloworld.MyActivity"  

     android:label="@string/app_name" >              

</activity>  

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

 

[java] view
plain copy

c.通过Intent实现两个手机界面的跳转方法:  

      Frist,创建一个新的Activity,继承super.onCreate()方法  

      Second,在layout文件夹下创建一个新的activaty_my.xml文件实现LinearLayout,  

             然后在界面添加自己想要在这个界面上出现的控件  

          setContentView(R.layout.activaty_my);  

    Third,在MainActivity中的按钮监听器中加入如下代码:  

         Intent intent=new Intent();  

         intent.setClass(MainActivity.this,MyActivity.class);  

        this.startActivity(intent);  

    Fourth,要在AndroidManifest.xml中注册一个Acitivity  

        <activity   

            android:name="com.example.helloworld.MyActivity"  

            android:label="@string/app_name" >              

           </activity>  

 

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



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

[java] view
plain copy

MainActivity中的代码  

Intent intent = new Intent();  

intent.setClass(MainActivity.this, PlayerActivity.class);  

//放入整数  

intent.putExtra("key", 5);  

//放入字符串  

intent.putExtra("str", "字符串");                

startActivity(intent);  

  

  

PlayerActivity中的代码  

Intent intent = this.getIntent();  

// 获得整数  

intMusicIndex = intent.getIntExtra("key", 0);  

//获得字符串  

System.out.println(intent.getStringExtra("str"));  

  

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

[java] view
plain copy

MainActivity中的代码:  

  

Intent intent = new Intent();  

intent.setClass(MainActivity.this, PlayerActivity.class);  

                  

Bundle bundle1=new Bundle();  

bundle1.putInt("bundle", 33);  

 //两个参数  

intent.putExtra("intent", bundle1);  

                   

Bundle bundle2=new Bundle();  

bundle2.putString("ss", "无参");  

//一个参数  

intent.putExtras(bundle2);  

  

startActivity(intent);    

  

注意一个是  

putExtra,另一个是putExtras  

  

  

  

  

PlayerActivity中的代码:  

Intent intent = this.getIntent();  

//获得指定的Bundle  

Bundle bundle0=intent.getBundleExtra("intent");  

int i=bundle0.getInt("bundle");  

System.out.println(i);  

//默认      

Bundle bundle=intent.getExtras();  

System.out.println(bundle.getString("ss"));  

  

注意一个是getBundleExtra,一个是getExtras
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐