网站建设资讯

NEWS

网站建设资讯

安卓跳转java代码 android中跳转activity有几种方法

java软件里面的跳转页面代码实现

1. RequestDispatcher.forward()

10余年的琼山网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整琼山建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“琼山网站设计”,“琼山网站推广”以来,每个客户项目都认真落实执行。

是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递. 但forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同陵雹搜时forward()无法在后面带参数传递,比如servlet?name=frank,这样不行,可以程序内通过response.setAttribute("name",name)来传至下一个页面。

重定向后浏览器地址栏URL不变。

 肆敏 例:在servlet中进行重定向

public void doPost(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException

{

response.setContentType("text/html; charset=gb2312");

ServletContext sc = getServletContext();

RequestDispatcher rd = null;

rd = sc.getRequestDispatcher("/index.jsp"); //定向的页面

rd.forward(request, response);

}

通常在servlet中使用,不在jsp中使用。

2. response.sendRedirect()

是在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=frank传至下个页面,同时它可以重定向至不同的主机上,sendRedirect()可以重定向有frame.的jsp文件.

重定向后在浏览器地址栏上会出现重定向页面的URL

例尺历:在servlet中重定向

public void doPost(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException

{

response.setContentType("text/html; charset=gb2312");

response.sendRedirect("/index.jsp");

}

由于response是jsp页面中的隐含对象,故在jsp页面中可以用response.sendRedirect()直接实现重定位。

注意:

(1) 使用response.sendRedirect时,前面不能有HTML输出;

这并不是绝对的,不能有HTML输出其实是指不能有HTML被送到了浏览器。事实上现在的server都有cache机制,一般在8K(我是说 JSP SERVER),这就意味着,除非你关闭了cache,或者你使用了out.flush()强制刷新,那么在使用sendRedirect之前,有少量的HTML输出也是允许的。

(2) response.sendRedirect之后,应该紧跟一句return。

我们已经知道response.sendRedirect是通过浏览器来做转向的,所以只有在页面处理完成后,才会有实际的动作。既然你已经要做转向了,那么后的输出还有什么意义呢?而且有可能会因为后面的输出导致转向失败。

比较:

(1) Dispatcher.forward()是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;

(2) response.sendRedirect()则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。

前者更加高效,在前者可以满足需要时,尽量使用RequestDispatcher.forward()方法。

注:在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用HttpServletResponse.sendRequest()方法。

3. <jsp:forward page="" />

它的底层部分是由RequestDispatcher来实现的,因此它带有RequestDispatcher.forward()方法的印记。

如果在之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意。

另外要注意:它不能改变浏览器地址,刷新的话会导致重复提交

4. 修改HTTP header的Location属性来重定向

通过设置直接修改地址栏来实现页面的重定向。

jsp文件代码如下:

<%

response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);

String newLocn = "/newpath/jsa.jsp";

response.setHeader("Location",newLocn);

%>

5. JSP中实现在某页面停留若干秒后,自动重定向到另一页面

在html文件中,下面的代码:

<meta http-equiv="refresh" content="300; url=target.jsp">

它的含义:在5分钟之后正在浏览的页面将会自动变为target.html这一页。代码中300为刷新的延迟时间,以秒为单位。targer.html为你想转向的目标页,若为本页则为自动刷新本页。

由上可知,可以通过setHeader来实现某页面停留若干秒后,自动重定向到另一页面。

关键代码:

String content=stayTime+";URL="+URL;

response.setHeader("REFRESH",content);

安卓中如何实现页面跳转

安卓实现页面跳转及传递参数教程:

用类名跳转

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

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="" 

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跳转实现

使姿缓薯用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在系统中是唯一的。

data/type,可以用Uri来做为data,比如Uri uri = Uri.parse();

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

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

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

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="" 

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

安卓继承fragment后怎么敲java代码

从fragment中跳转和从activity中跳转类似,只不过你要先通过fragment的getActivity方法获取到显示这个fragment的activity,具体代码是这样的:

Intent

intent

=

new

Intent();

intent.setActivity(getActivity(),

TargetActivity.class);

startActivity(intent);

//这里用getActivity().startActivity(intent);

如果不返回结果的话,第三行代码没什好键悄么区别,如果要返回一个结果的话,可以有类似的两种方法:

/亮察/直接从fragment中跳转

startActivityForResult(intent,

REQUEST_CODE);

这种写法接友渣收返回的结果要在fragment中重写onActivityResult()方法;

//从activity中跳转

getActivity().startActivityForResult(intent,

REQUEST_CODE);

这种写法要在Activity中重写onActivityResult()方法。


分享文章:安卓跳转java代码 android中跳转activity有几种方法
本文链接:http://cdweb.net/article/ddpcogo.html