深圳易捷网络科技财税咨询网-neatmaster518.com 返回首页

android页面跳转和切换的方式

信息来源:深圳市易捷网络科技有限公司
信息发布时间:2025/4/4

第一种方式,用action来跳转。

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

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

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

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

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

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

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

Java代码packagecom.android.edit_text;

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.KeyEvent;

importandroid.view.View;

importandroid.widget.EditText;

publicclassMyEditTextextendsActivity{

privateTextViewm_TextView;

privateEditTextm_EditText;

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

m_EditText=(EditText)this.findViewById(R.id.EditText01);

m_EditText.setOnKeyListener(editTextKeyListener);

}

privateEditText.OnKeyListenereditTextKeyListener=newEditText.OnKeyListener(){

@Override

publicbooleanonKey(Viewarg0,intarg1,KeyEventarg2){

//action跳转,需要在AndroidManifest.xml中配置action

Intenti=newIntent("android.intent.action.mydialog");

MyEditText.this.startActivity(i);

returnfalse;

}

};

}

复制代码Xml代码<xmlversion="1.0"encoding="utf-8">

<manifestxmlns:android="http://schemas.android.com/apk/res/android"

package="com.android.edit_text"android:versionCode="1"

android:versionName="1.0">

<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">

<activityandroid:name=".MyEditText"android:label="@string/app_name">

<intent-filter>

<actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

<!--配置跳转activity-->

<activityandroid:name="com.android.dialog.MyDialog">

<intent-filter>

<!--配置action路径-->

<actionandroid:name="android.intent.action.mydialog"/>

<categoryandroid:name="android.intent.category.DEFAULT"/>

</intent-filter>

</activity>

</application>

<uses-sdkandroid:minSdkVersion="7"/>

</manifest>

复制代码第二种方式,用类名跳转。

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

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

Java代码packagecom.Android;

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.View.OnClickListener;

publicclassFormStuffextendsActivity{

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.formstuff);

finalImageButtonbutton=(ImageButton)findViewById(R.id.android_button);

button.setOnClickListener(newOnClickListener(){

publicvoidonClick(Viewv){

//用类名跳转,需要在AndroidManifest.xml中申明activity

Intentintent=newIntent(FormStuff.this,HelloTabWidget.class);

startActivity(intent);

}

});

}

复制代码Xml代码<xmlversion="1.0"encoding="utf-8">

<manifestxmlns:android="http://schemas.android.com/apk/res/android"

package="com.Android"android:versionCode="1"android:versionName="1.0">

<applicationandroid:icon="@drawable/icon"android:theme="@android:style/Theme.NoTitleBar">

<activityandroid:name=".FormStuff"android:label="@string/app_name">

<intent-filter>

<actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

<!--申明activity-->

<activityandroid:name="HelloTabWidget"></activity>

</application>

<uses-sdkandroid:minSdkVersion="4"/>

</manifest>

复制代码一些Intent的常用发:

Java代码显示网页

1.Uriuri=Uri.parse("http://google.com");

2.Intentit=newIntent(Intent.ACTION_VIEW,uri);

3.startActivity(it);

显示地图

1.Uriuri=Uri.parse("geo:38.899533,-77.036476");

2.Intentit=newIntent(Intent.ACTION_VIEW,uri);

3.startActivity(it);

4.//其他geoURI範例

5.//geo:latitude,longitude

6.//geo:latitude,longitudez=zoom

7.//geo:0,0q=my+street+address

8.//geo:0,0q=business+near+city

9.//google.streetview:cbll=lat,lng&amp;cbp=1,yaw,,pitch,zoom&amp;mz=mapZoom

路径规划

1.Uriuri=Uri.parse("http://maps.google.com/mapsf=d&amp;saddr=startLatstartLng&amp;daddr=endLatendLng&amp;hl=en");

2.Intentit=newIntent(Intent.ACTION_VIEW,uri);

3.startActivity(it);

4.//wherestartLat,startLng,endLat,endLngarealongwith6decimalslike:50.123456

打电话

1.//叫出拨号程序

2.Uriuri=Uri.parse("tel:0800000123");

3.Intentit=newIntent(Intent.ACTION_DIAL,uri);

4.startActivity(it);

1.//直接打电话出去

2.Uriuri=Uri.parse("tel:0800000123");

3.Intentit=newIntent(Intent.ACTION_CALL,uri);

4.startActivity(it);

5.//用這个,要在AndroidManifest.xml中,加上

6.//&lt;uses-permissionid="android.permission.CALL_PHONE"/&gt;

传送SMS/MMS

1.//调用短信程序

2.Intentit=newIntent(Intent.ACTION_VIEW,uri);

3.it.putExtra("sms_body","TheSMStext");

4.it.setType("vnd.android-dir/mms-sms");

5.startActivity(it);

1.//传送消息

2.Uriuri=Uri.parse("smsto://0800000123");

3.Intentit=newIntent(Intent.ACTION_SENDTO,uri);

4.it.putExtra("sms_body","TheSMStext");

5.startActivity(it);

1.//传送MMS

2.Uriuri=Uri.parse("content://media/external/images/media/23");

3.Intentit=newIntent(Intent.ACTION_SEND);

4.it.putExtra("sms_body","sometext");

5.it.putExtra(Intent.EXTRA_STREAM,uri);

6.it.setType("image/png");

7.startActivity(it);

传送Email

1.Uriuri=Uri.parse("mailto:xxx@abc.com");

2.Intentit=newIntent(Intent.ACTION_SENDTO,uri);

3.startActivity(it);

1.Intentit=newIntent(Intent.ACTION_SEND);

2.it.putExtra(Intent.EXTRA_EMAIL,"me@abc.com");

3.it.putExtra(Intent.EXTRA_TEXT,"Theemailbodytext");

4.it.setType("text/plain");

5.startActivity(Intent.createChooser(it,"ChooseEmailClient"));

1.Intentit=newIntent(Intent.ACTION_SEND);

2.String[]tos={"me@abc.com"};

3.String[]ccs={"you@abc.com"};

4.it.putExtra(Intent.EXTRA_EMAIL,tos);

5.it.putExtra(Intent.EXTRA_CC,ccs);

6.it.putExtra(Intent.EXTRA_TEXT,"Theemailbodytext");

7.it.putExtra(Intent.EXTRA_SUBJECT,"Theemailsubjecttext");

8.it.setType("message/rfc822");

9.startActivity(Intent.createChooser(it,"ChooseEmailClient"));

1.//传送附件

2.Intentit=newIntent(Intent.ACTION_SEND);

3.it.putExtra(Intent.EXTRA_SUBJECT,"Theemailsubjecttext");

4.it.putExtra(Intent.EXTRA_STREAM,"file:///sdcard/mysong.mp3");

5.sendIntent.setType("audio/mp3");

6.startActivity(Intent.createChooser(it,"ChooseEmailClient"));

播放多媒体

Uriuri=Uri.parse("file:///sdcard/song.mp3");

Intentit=newIntent(Intent.ACTION_VIEW,uri);

it.setType("audio/mp3");

startActivity(it);

Uriuri=Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI,"1");

Intentit=newIntent(Intent.ACTION_VIEW,uri);

startActivity(it);


Market相关

1.//寻找某个应用

2.Uriuri=Uri.parse("market://searchq=pname:pkg_name");

3.Intentit=newIntent(Intent.ACTION_VIEW,uri);

4.startActivity(it);

5.//wherepkg_nameisthefullpackagepathforanapplication

1.//显示某个应用的相关信息

2.Uriuri=Uri.parse("market://detailsid=app_id");

3.Intentit=newIntent(Intent.ACTION_VIEW,uri);

4.startActivity(it);

5.//whereapp_idistheapplicationID,findtheID

6.//byclickingonyourapplicationonMarkethome

7.//page,andnoticetheIDfromtheaddressbar

1.Uriuri=Uri.fromParts("package",strPackageName,null);

2.Intentit=newIntent(Intent.ACTION_DELETE,uri);

3.startActivity(it);


android常用界面切换效果;

Activity的切换动画指的是从一个activity跳转到另外一个activity时的动画。

{它包括两个部分:

一部分是第一个activity退出时的动画;

另外一部分时第二个activity进入时的动画;

在Android的2.0版本之后,有了一个函数来帮我们实现这个动画。这个函数就是overridePendingTransition

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.SplashScreen);

newHandler().postDelayed(newRunnable(){

@Override

publicvoidrun(){

IntentmainIntent=newIntent(SplashScreen.this,AndroidNews.class);

SplashScreen.this.startActivity(mainIntent);

SplashScreen.this.finish();

overridePendingTransition(R.anim.mainfadein,

R.anim.splashfadeout);

}

},3000);

}

上面的代码只是闪屏的一部分。

getWindow().setWindowAnimations(int);

getWindow().setWindowAnimations(int);

这可没有上个好但是也可以。

实现淡入淡出的效果1

overridePendingTransition(R.anim.splash_screen_fade,R.anim.splash_screen_hold);

实现淡入淡出的效果2

overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);

由左向右滑入的效果

overridePendingTransition(Android.R.anim.slide_in_left,android.R.anim.slide_out_right);

实现zoomin和zoomout,即类似iphone的进入和退出时的效果

overridePendingTransition(R.anim.zoomin,R.anim.zoomout);

overridePendingTransition(R.anim.zoomin,R.anim.zoomout);

新建zoomin.xml文件

<xmlversion="1.0"encoding="utf-8">

<setxmlns:Android="http://schemas.android.com/apk/res/android"

Android:interpolator="@android:anim/decelerate_interpolator">

<scaleAndroid:fromXScale="2.0"android:toXScale="1.0"

Android:fromYScale="2.0"android:toYScale="1.0"

Android:pivotX="50%p"android:pivotY="50%p"

Android:duration="@android:integer/config_mediumAnimTime"/>

</set>

新建zoomout.xml文件

<xmlversion="1.0"encoding="utf-8">

<setxmlns:Android="http://schemas.android.com/apk/res/android"

Android:interpolator="@android:anim/decelerate_interpolator"

Android:zAdjustment="top">

<scaleAndroid:fromXScale="1.0"android:toXScale=".5"

Android:fromYScale="1.0"android:toYScale=".5"

Android:pivotX="50%p"android:pivotY="50%p"

Android:duration="@android:integer/config_mediumAnimTime"/>

<alphaAndroid:fromAlpha="1.0"android:toAlpha="0"

Android:duration="@android:integer/config_mediumAnimTime"/>

</set>

相关行业资讯

1、企业如何选择网站建设服务商
2、网站推广的6种有效方法
3、别让网站注册问题吓跑了用户
4、站长要孰知链接营销让蜘蛛恋上你的站
5、网站建设时容易走进的几大误区
6、什么样的网站制作更能够吸引人
7、京伦营销课程:微商是什么如何做微商
8、网易企业邮箱动态邮件列表:降低维护成本提升管理效率
9、seo优化中的语义搜索是什么
10、网站优化:SEO从业者不能忽视的细节问题
11、移动互联网背后的SEO优化技巧
12、做网站建设前需要考虑什么问题
13、如何做好网站优化切记这7件事不要做
14、建设网站主要的详细步骤有哪些
15、如何做好关键字优化难易程度分析
16、网站建造站内优化基础重点
17、对比360搜索和百度之间的差异
18、搜索引擎是如何抓取图片信息的
19、手机网站建设疏密均匀
20、一站式建设网站包含哪些服务内容
21、为什么别人家网站比你成功因为他们做了这些
22、提高网站优化排名就看这九条
23、一个完美的网站到底需要怎么样的设计吗
24、移动端网站优化要注意哪些细节
25、高端网站建设—网站有哪些很糟糕的原因
26、建设网站的起点从域名出发
27、网站制作之网站测试的重要性
28、深圳什么类型网站建设适合小企业
29、如何识别一个百度SEO优化公司是否靠谱呢
30、提高你的WP站点速度的方法
31、产品展示网站中搜索功能的重要性
32、网站制作在正式运营前需万事俱备
33、企业网站建设注意事项与要点
34、常规的网站设计流程分为几个步骤
35、响应式网站制作适合哪些类型的网站
36、kloxo占用VPS空间过多的清理日志和TMP文件办法
37、网站建设如何创造有效的外部链接
38、官网栏目负<title>标签应该怎么样优化
39、营销网站的建设让你在互联网时代领先一步
40、网站发布前测试需要注意哪些方面
41、深圳网站建设团队教您如何科学做seo
42、网站制作并不神秘,方法论铸就神奇
43、现今域名选择对于SEO的重要性
44、 项目定位和引擎定位
45、怎样把握具有商业价值的关键词
46、深圳网站制作公司易捷网络科技做客户满意的项目
47、网站建设过程中的标题怎么设计
48、怎么做网站内容才有利于收录
49、网易企业邮箱域名管理服务升级通知
50、关于网站适应不同显示器和分辨率的问题
深圳市易捷网络科技有限公司版权所有    粤ICP备2022153140号