1.显示意图跳转
a.一个界面就是一个Activity,因此新的界面类要继承Activity类。且必须要在清单文件中声明。(主界面已经在清单文件中声明了)声明中的android:name="包名.类名",其中的包名可以省略,称为 ".类名" 但是前面的 . 不能省略 setContentView(R.layout.activity) 设置界面 b.在原界面中,创建意图:Intent intent = new Intent();描述一些信息 c.intent.setClass(this,目标类.class); d.表时跳转到哪个界面,这里知道要跳转到哪个界面,因此是显示的。 e.另一方式:intent.setClassName(包名,类名);包名是清单文件中的那个package: (this.getPackageName,类的包名.类名) f.startActivity(intent);开始意图 g.应用场景,在一个应用程序内部中,知道类名,最为常用:setClass(this,SecondActivity.class); h.特点是:耦合性非常高 2.隐式意图跳转 a.应用场景:在不知道某一个Activity的类名包名,并且引用不到时,用隐式意图。隐式意图跳转到其他应用,跨应用跳跃 跳转到其他应用的界面 跳转到浏览器并打开百度网址 b.特点:耦合低 c.原界面: Intent intent = new Intent(); intent.setAction("aa.bb.cc.dd") //这里的参数与清单文件中的要一致,并且category要是DEFAULT的,如果是LAUNCHER就会出错 startActivity(intent) d.在清单文件的第二个Activity中,声明一个动作action,并添加一个附加信息category e.隐式意图传递参数:在清单文件中,如果有schema 那么在代码中也要设置 f.Uri:统一资源标识符 URL :统一资源定位符 URL 是Uri的一个子集 j.原代码中intent.setData(Uri.parse("abc:123")); h.清单文件,注意scheme i.设置mimetype: j.原代码中:intent.setType("list/person"); k.注意:setDate setType 不能分开设置,要么只写一个,要么必须一起设置,如下 l.intent.setDataAndType(Uri。parse("abc:123",“lsit....”); m.如果这么写 setDate();内部会把type=null setType();内部会把data=null 因此二者要合起来写。 目标Activity:otherActivity.java ```java package com.example.a0703_intent_external; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.TextView; public class otherActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText("other999999"); setContentView(tv); } } ``` 主Activity:MainActivity.java ```java package com.example.a0703_intent_external; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.app.Activity; import android.content.Intent; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View v){ //显示方式:知道目标Activity的名字 //方式一: //参数二:创建Intent的时候就指定跳转到哪个Activity // Intent intent = new Intent(this, otherActivity.class); // startActivity(intent); //方式二: // Intent intent = new Intent(); //该方法作用就是指定跳转到哪个Activity // intent.setClassName(this, "com.example.a0703_intent_external.otherActivity"); // startActivity(intent); //隐式方式 不知道目标Activity的名称,但是知道目标Activity的action和一些附加信息 Intent intent = new Intent(); //设置action intent.setAction("android.intent.action.external"); //intent.setDataAndType(Uri.parse("bbb:123"), "aaa/bbb"); //设置附加信息 intent.setDataAndType(Uri.parse("person:fffff"), "list/person"); //开始跳转 startActivity(intent); } } ``` 布局文件: ```java activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClick" android:text="跳转" /> </RelativeLayout> other.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <Text android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="other " /> </RelativeLayout> otherActivity.java 需要在清单文件中注册 <activity android:name="com.example.a0703_intent_external.otherActivity" > <intent-filter> <action android:name="android.intent.action.external"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="person"/> <data android:mimeType="list/person"/> </intent-filter> </activity> |
Intent跳转方式
时间: 2024-10-25 23:28:10
Intent跳转方式的相关文章
Android之Activity的几种跳转方式
1.显示调用方法 Intent intent=new Intent(this,OtherActivity.class); //方法1 Intent intent2=new Intent(); intent2.setClass(this, OtherActivity.class);//方法2 intent2.setClassName(this, "com.zy.MutiActivity.OtherActivity"); //方法3 此方式可用于打开其它的应用 intent2.set
Intent跳转与传值总结
/*---------------------------------------- *-描述--Intent跳转与传值总结. *-描述--S1.Intent描述 * Intent的分类 * 1.显式意图 通常是指intent启动目标组件时明确指定了组件的名称的情况 * 一般是用在启动同一个应用程序中的组件 * 2.隐式意图 通常是指intent启动目标组件时没有明确指定了组件的名称的情况 * 只是指定了启动组件的特征,一般情况下是用在启动不同应用中的组件 * * 如果目标组件没有指定inten
Android开发——三种活动跳转方式
Android开发——三种活动跳转方式 1. 点击控件跳转 这里用 Button 举例,在布局文件中创建 Button 按钮,在再源码文件中写入活动跳转代码: Button button1 = (Button)findViewById(R.id.button1); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainAc
Android activity跳转方式
方法一:通过SetContentView切换Layout来实现界面的切换,这种方法相当于重绘Activity. protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btnInsert = (Button) this.findViewById(R.id.btnInsert); //
jsp中几种跳转方式和参数共享
整理了一下jsp入门中的跳转和数据共享问题,写成这篇博文希望对大家有帮助,参考文章列在后面: 常用的跳转方式有以下几种: (1)href超链接标记,属于客户端跳转 (2)使用javascript完成,属于客户端跳转 (3)提交表单完成跳转,属于客户端跳转 (4)使用response对象,属于客户端跳转 (5)使用requestDispatcher类,属于服务器跳转 下面一一来看 (1)href超链接标记 这个比较简单,通常写到a标签里即可,来完成指定位置的动态跳转比较方便 代码:<a href=
android intent 跳转
一.不需要返回值的跳转 Intent intent=new Intent(); intent.setClass(目前的acitivy.this, 目标activity.class); startActivity(intent); 二.需要返回值的跳转 Intent intent=new Intent(); intent.setClass(目前的acitivy.this, 目标activity.class); startActivity(intent); startActivityForResul
Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
现在开发中的功能需要直接跳转到拨号.联系人.短信界面等等,查找了很多资料,自己整理了一下.1.跳转到拨号界面,代码如下: 1)直接拨打 Intent intentPhone = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber)); startActivity(intentPhone); 2)跳转到拨号界面 Intent intent = newIntent(Intent.ACTION_DIAL,Uri.pars
URI跳转方式地图导航的代码实践
本文转载至 http://adad184.com/2015/08/11/practice-in-mapview-navigation-with-URI/ 前言 之前介绍了我正在做的是一款定位主打的应用 然后最近我们需要做一个定位导航的功能 能够让用户从当前位置导航到指定目的地(默认以驾车的方式导航) 手机上的导航方式 分应用内导航和应用外导航 应用内导航是指使用地图服务提供的SDK(比如高德,百度等等) 直接将导航功能嵌入到我们自己的APP内部但是这个方案我个人不喜欢 一是接入要一定的时间 二是
Intent跳转到系统应用中的拨号界面、联系人界面、短信界面及其他
现在开发中的功能需要直接跳转到拨号.联系人.短信界面等等,查找了很多资料,自己整理了一下. 首先,我们先看拨号界面,代码如下: [java] view plaincopy Intent intent =new Intent(); intent.setAction("android.intent.action.CALL_BUTTON"); startActivity(intent); 和 [java] view plaincopy Uri uri = Uri.parse("te