页面跳转

Intent实现Activity之间的跳转

(1)无返回值:

首先得创建两个继承Activtity的类,

注意!在安卓中,每创建一个Activtity类都要在AndroidManifest.xml文件中注册

例如我这里注册了三个Activity类,(分别是MainActivity,MianActivity2,MianActivity3)

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3     package="com.example.z_intent"
 4     android:versionCode="1"
 5     android:versionName="1.0" >
 6
 7     <uses-sdk
 8         android:minSdkVersion="8"
 9         android:targetSdkVersion="21" />
10
11     <application
12         android:allowBackup="true"
13         android:icon="@drawable/ic_launcher"
14         android:label="@string/app_name"
15         android:theme="@style/AppTheme" >
16         <activity
17             android:name=".MainActivity"
18             android:label="@string/app_name" >
19             <intent-filter>
20                 <action android:name="android.intent.action.MAIN" />
21
22                 <category android:name="android.intent.category.LAUNCHER" />
23             </intent-filter>
24         </activity>
25
26         <activity
27             android:name=".MainActivity2"
28             android:label="@string/app_name" >
29         </activity>
30
31         <activity
32             android:name=".MainActivity3"
33             android:label="@string/app_name" >
34         </activity>
35     </application>
36
37 </manifest>

需要程序启动时候第一个显示的Activity类要写入<intent-filter></intent-filter>相关信息.

顺便解释一下,文件中的android:versionCode="1"和android:versionName="1.0代表版本号

android:minSdkVersion="8"表示应用支持最低的API版本android:targetSdkVersion="21"建议的API版本

四大组件的注册都需要写在<application></appliaction>里面

回归主题:

然后需要创建两个布局文件,分别对应两个Activity的布局

布局样式是这样的:(其中第一个布局下面是有个TextView的)

通过按无返回跳转去到第二个布局,然后按返回回到第一个布局

    

通过Intent实现两个Activity之间的转换

示例代码:

 1 public class MainActivity extends Activity {
 2
 3     private Button bt1;
 4     private TextView text;
 5     @Override
 6     protected void onCreate(Bundle savedInstanceState) {
 7         super.onCreate(savedInstanceState);
 8         setContentView(R.layout.activity_main);
 9         bt1 = (Button)findViewById(R.id.bt1);
10         text = (TextView)findViewById(R.id.text);
11         bt1.setOnClickListener(new OnClickListener() {
12             @Override
13             public void onClick(View v) {
14                 Intent intent = new Intent(MainActivity.this,MainActivity2.class);
15                 startActivity(intent); //启动Activiry
16             }
17         });
18     }
19 }
 1 public class MainActivity2 extends Activity {
 2
 3     private Button bt;
 4      @Override
 5         protected void onCreate(Bundle savedInstanceState) {
 6             super.onCreate(savedInstanceState);
 7             setContentView(R.layout.activity_mian2);
 8             bt = (Button)findViewById(R.id.bt3);
 9             bt.setOnClickListener(new OnClickListener() {
10                 public void onClick(View v) {
11                     finish();    //销毁这个Activity
12                 }
13             });
14         }
15 }

(1)有返回值:

Intent不仅可以转换Activity,还可以保存数据

首先我们同样先创建一个新的类继承Activty,记得在AndroidManifest.xml文件中注册

然后第三个Activity的布局是这样的:

通过按有返回跳转去到第三个布局,通过往EditText里面写入东西,按返回按钮回到第一个Activity,并且在TextView中显示出来

示例代码:

 1 public class MainActivity extends Activity {
 2
 3     private Button bt1,bt2;
 4     private TextView text;
 5     @Override
 6     protected void onCreate(Bundle savedInstanceState) {
 7         super.onCreate(savedInstanceState);
 8         setContentView(R.layout.activity_main);
 9         bt1 = (Button)findViewById(R.id.bt1);
10         bt2 = (Button)findViewById(R.id.bt2);
11         text = (TextView)findViewById(R.id.text);
12         bt1.setOnClickListener(new OnClickListener() {
13             @Override
14             public void onClick(View v) {
15                 Intent intent = new Intent(MainActivity.this,MainActivity2.class);
16                 startActivity(intent); //启动Activiry
17             }
18         });
19
20         bt2.setOnClickListener(new OnClickListener() {
21             @Override
22             public void onClick(View v) {
23                 Intent intent = new Intent(MainActivity.this,MainActivity3.class);
24                 /**
25                  * startActivityForResult(Intent intent, int requestCode)
26                  * requestCode是自己定义的请求编号,用来区分不同的界面向同一个界面请求
27                  */
28                 startActivityForResult(intent,1);
29             }
30         });
31     }
32     public void onActivityResult(int requestCode, int resultCode, Intent data){
33         super.onActivityResult(requestCode, resultCode, data);
34         if(requestCode == 1 && resultCode == 2){
35             //这里的code是data保存数据里面的信息编号。
36               String s = data.getStringExtra("code");
37               text.setText(s);
38         }
39     }
40 }
 1 public class MainActivity3 extends Activity {
 2
 3     private Button bt;
 4     private EditText et;
 5      @Override
 6         protected void onCreate(Bundle savedInstanceState) {
 7             super.onCreate(savedInstanceState);
 8             setContentView(R.layout.activity_mian3);
 9             bt = (Button)findViewById(R.id.bt4);
10             et = (EditText)findViewById(R.id.et);
11             bt.setOnClickListener(new OnClickListener() {
12                 public void onClick(View v) {
13                     Intent data = new Intent();
14                     data.putExtra("code",et.getText().toString());
15                     /**
16                      * setResult(int resultCode, Intent data)
17                      * resultCode 返回编号,用来区分不同界面向同一个界面返回结果
18                      */
19                     setResult(2,data);
20                     finish();
21                 }
22             });
23         }
24 }

示例结果:

   

如果有什么错误,或者我理解错误或不当的,恳请大家纠正,谢谢!嘻嘻嘻~

时间: 2024-10-06 08:40:59

页面跳转的相关文章

页面跳转?sendRedirect()与forward()辨析

在JSP中,要实现页面的跳转,主要有两种方式实现:forward和sendRedirect. 一.forward forward实现页面跳转是通过转移请求实现的.客户端向服务器的页面1发出一个请求,页面1编译运行过程中发现处理不了,把这个请求转移(forward)给页面2来处理,这个请求对象封装了一开始客户端发送请求时封装的信息.参数等.页面2对通过这个请求对象提取数据并进行一系列的操作处理后,把结果通过response发回原客户端浏览器显示.整个过程中只发生了一次请求.一次响应.由于宏观上是客

页面跳转问题

常用http 请求状态码 今天遇到一个页面跳转问题.a标签跳转时不能正常访问,但当页面回车刷新或者https时访问正常,查看request Header请求发现前者多了Referer信息. 页面做了Referer验证,只有指定域名才能访问. 跳转方案: 1.php方式 <? header('Location: http://www.example.com/'); ?> 创建一个域名可以验证通过的中间跳转页,做302跳转,但发现页面Referer不会发生变化 //301永久性跳转一般都是服务器做

js中实现页面跳转

1.在本页中跳转到指定页面 1.window.location.href方式    <script language="javascript" type="text/javascript">           window.location.href="target.aspx";     </script> 2.window.navigate方式跳转   <script language="javascr

HTML 定时页面跳转

有 2 种方法可以实现 html 的定时页面跳转,1.meta refresh 实现.2.JavaScript 实现. 1.通过 meta refresh 实现 3 秒后自动跳转到 http://www.cnblogs.com/wuxibolgs329/ 页面. <!doctype html> <html> <head> <meta charset="utf-8"> <title>前端笔记</title> <

页面跳转的几种方式

第一种: <script language="javascript"> window.location.href="index.php"; //比较常用的方法,没什么可解释的,后面直接跟指定要跳转的地方. </script> 第二种: <script language="javascript"> alert("返回"); window.history.back(-1); //类似于按钮,参数

js控制页面跳转,清缓存,强制刷新页面

单看标题,必定满脸蒙13. 其实,想表达的仅仅是,在js中通过window.location.href控制页面跳转时,有时会跳转至缓存页面,并没有真正去请求要跳转的地址,导致页面数据未能及时加载刷新. 直奔code... 解决办法: 在HTML中埋入隐藏from,通过js调用from进行请求链接地址 <form id='hidden_submit_info' method="post" enctype="multipart/form-data" action=

iOS-UITableView-处理cell上按钮事件(弹出警示框,页面跳转等)

一. 目的: 实现UITableViewCell上按钮点击事件可以进行页面跳转. 二. 实现方法: 1. 用协议的方式的实现. 2. 需要自定义UITableViewCell. 三. 代码部分. cell.h中 #import <UIKit/UIKit.h> @protocol SevenProtocolDelegate <NSObject> - (void)sevenProrocolMethod:(UIViewController *)viewController and:(NS

点击事件然后页面跳转到指定DOM元素的位置

设置一个函数,执行函数滚动条自动拖动,页面跳转到指定DOM元素的位置. 实现方式很简单,首先引入animatescroll.js文件(要先引入JQuery),然后 $('#id').animatescroll(); 即可调到指定DOM元素在页面的位置. 为方便可以编写一个函数,传入DOM元素的ID function jumpTo(id){ $("#"+id).animatescroll(); } 附animatescroll.js /* 使用方法: $("#id")

通过Manifest的配置信息实现页面跳转

1:新建一个xml文件,如second_view.xml文件,然后新建一个Activity如SecondActivity.java并在里面设置setContentView(R.layout.second_view.xml); <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/andro

ngRoute+ngAnimate与JQM中的页面跳转的区别

1.ngRoute+ngAnimate与jQM中的页面跳转有何异同? 相同点: (1)完整的HTML只需要一个 (2)使用异步AJAX请求获取下一个页面 (3)可以实现转场动画 不同点: (1)ngRoute需要配置路由字典:jQM没有,更加灵活 (2)ngRoute访问路由地址的格式——特殊格式的hash http://xxx/index.html#/main jQM访问页面地址——普通的URL http://xxx/tpl/main.html (3)ngRoute访问的路由页面可以使用F5刷