android页面跳转和切换的方式

2021-10-01    分类: 网站建设

第一种方式,用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:andro

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:andro

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-permission /&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:andro

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:andro

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>

网站题目:android页面跳转和切换的方式
本文路径:https://www.cdcxhl.com/news42/129292.html

成都网站建设公司_创新互联,为您提供营销型网站建设面包屑导航全网营销推广网站内链外贸建站网站策划

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都seo排名网站优化