安卓中如何实现页面跳转

 我来答
sun时空之门
推荐于2016-09-30 · TA获得超过8852个赞
知道小有建树答主
回答量:1559
采纳率:68%
帮助的人:157万
展开全部
  • 安卓实现页面跳转及传递参数教程:

  • 用类名跳转

    1. Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述, 负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent在这里起着实现调用者与被调用者之间的解耦作用。

    2. Intent传递过程中,要找到目标消费者(另一个Activity,IntentReceiver或Service),也就是Intent的响应者。

      Java代码 package com.Android; 
       
      import android.app.Activity; 
      import android.content.Intent; 
      import android.os.Bundle; 
      import android.view.View; 
      import android.view.View.OnClickListener; 
       
      public class FormStuff extends Activity { 
      @Override 
      public void onCreate(Bundle savedInstanceState) { 
             super.onCreate(savedInstanceState); 
             setContentView(R.layout.formstuff); 
       
             final ImageButton button = (ImageButton) findViewById(R.id.android_button); 
             button.setOnClickListener(new OnClickListener() { 
               public void onClick(View v) { 
      // 用类名跳转,需要在AndroidManifest.xml中申明activity 
                  Intent intent = new Intent(FormStuff.this, HelloTabWidget.class); 
                  startActivity(intent); 
               } 
             }); 
       

      复制代码Xml代码 <?xml version="1.0" encoding="utf-8"?> 
      <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.Android" android:versionCode="1" android:versionName="1.0"> 
       
      <application android:icon="@drawable/icon" android:theme="@android:style/Theme.NoTitleBar"> 
             <activity android:name=".FormStuff" android:label="@string/app_name"> 
               <intent-filter> 
                  <action android:name="android.intent.action.MAIN" /> 
                  <category android:name="android.intent.category.LAUNCHER" /> 
               </intent-filter> 
             </activity> 
             <!--申明activity--> 
      <activity android:name="HelloTabWidget"></activity> 
      </application> 
      <uses-sdk android:minSdkVersion="4" /> 
      </manifest>


  • 使用Action跳转实现

    1. 使用Action跳转,如果有一个程序的 AndroidManifest.xml中的某一个Activity的IntentFilter段中定义了包含了相同的Action那么这个Intent 就与这个目标Action匹配。如果这个IntentFilter段中没有定义 Type,Category,那么这个 Activity就匹配了。但是如果手机中有两个以上的程序匹配,那么就会弹出一个对话可框来提示说明。

      1. Action的值在Android中有很多预定义,如果想直接转到你自己定义的Intent接收者,可以在接收者的 IntentFilter中加入一个自定义的Action值(同时要设定 Category值为"android.intent.category.DEFAULT"),在Intent中设定该值为Intent的 Action,就直接能跳转到自己的Intent接收者中。因为这个Action在系统中是唯一的。

    2. data/type,可以用Uri来做为data,比如Uri uri = Uri.parse(http://www.google.com);

      1. Intent i = new Intent(Intent.ACTION_VIEW,uri);手机的Intent分发过程中,会根据http://www.google.com 的scheme判断出数据类型type

      2. 手机的Brower则能匹配它,在Brower的Manifest.xml中的IntenFilter中首先有ACTION_VIEW Action,也能处理http:的type。

    3. 至于分类Category,一般不要去在Intent中设置它,如果写Intent的接收者,就在Manifest.xml的 Activity的 IntentFilter中包含android.category.DEFAULT,这样所有不设置 Category(Intent.addCategory(String c);)的Intent都会与这个Category匹配。

    4.  extras(附加信息),是其它所有附加信息的集合。使用extras可以为组件提供扩展信息,比如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在extras里,传给电子邮件发送组件。

      Java代码 package com.android.edit_text; 
       
      import android.app.Activity; 
      import android.content.Intent; 
      import android.os.Bundle; 
      import android.view.KeyEvent; 
      import android.view.View; 
      import android.widget.EditText; 
       
      public class MyEditText extends Activity { 
       
      private TextView m_TextView; 
      private EditText m_EditText; 
       
       
      @Override 
      public void onCreate(Bundle savedInstanceState) { 
             super.onCreate(savedInstanceState); 
             setContentView(R.layout.main); 
       
             m_EditText = (EditText) this.findViewById(R.id.EditText01); 
             m_EditText.setOnKeyListener(editTextKeyListener); 

       
      private EditText.OnKeyListener editTextKeyListener = new EditText.OnKeyListener() { 
       
             @Override 
             public boolean onKey(View arg0, int arg1, KeyEvent arg2) { 
             
                           // action跳转,需要在AndroidManifest.xml中配置action 
               Intent i = new Intent("android.intent.action.mydialog"); 
               MyEditText.this.startActivity(i); 
               
               return false; 
             } 
      }; 

      复制代码Xml代码 <?xml version="1.0" encoding="utf-8"?> 
      <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.android.edit_text" android:versionCode="1" 
      android:versionName="1.0"> 
      <application android:icon="@drawable/icon" android:label="@string/app_name"> 
             <activity android:name=".MyEditText" android:label="@string/app_name"> 
               <intent-filter> 
                  <action android:name="android.intent.action.MAIN" /> 
                  <category android:name="android.intent.category.LAUNCHER" /> 
               </intent-filter> 
             </activity> 
                  <!--配置跳转activity--> 
             <activity android:name="com.android.dialog.MyDialog"> 
               <intent-filter> 
      <!--配置action路径--> 
                  <action android:name="android.intent.action.mydialog" /> 
                  <category android:name="android.intent.category.DEFAULT" /> 
               </intent-filter> 
             </activity> 
      </application> 
      <uses-sdk android:minSdkVersion="7" />
      </manifest>
用户名kd仔
2012-05-24 · TA获得超过405个赞
知道小有建树答主
回答量:478
采纳率:0%
帮助的人:297万
展开全部
安卓中的跳转其实不能说是页面的跳转,而应该是activity的跳转,具体可参照android教程
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
志力坚
2014-09-02
知道答主
回答量:12
采纳率:0%
帮助的人:3.6万
展开全部
Intent intent = new Intent(Context, class);//Context:指的是当前上下文 this
//Class是要跳转到的Activity类
startActivity(intent);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式