在不论什么程序开发中,都会遇到页面之间跳转的情况,Android开发也不例外.这一节,我们来认识下Android项目中如何进行页面跳转.页面跳转分为有參数和无參数页面跳转,已经接受还有一个页面的返回值等。Android中页面跳转经常使用到的是Intent ,可是Intent不仅用做页面跳转,还能够做其它事情,比如拨打电话,发送短信,调用其它程序等。这节我们主要认识下如何通过Intent进行页面跳转.

1.页面跳转

我们首先简单认识下Intent,Intent有有几个重载构造函数。我们使用当中一个构造函数进行页面跳转。

Intent intent = new Intent(MainActivity.this,SecondActivity.class);  有两个參数。第一个參数代表当前页面对象,第二个參数代表要跳转到的目标对象。

创建完Intent后,我们使用startActivity进行启动。、

以下我们看下这个效果

启动页面

<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="74dp"
android:text="跳转到下一个页面" /> </RelativeLayout>
package com.example.hellotest;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class MainActivity extends Activity { private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=(Button)findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() //绑定注冊button单击事件
{
@Override
public void onClick(View arg0) {
// button跳转
Intent intent = new Intent(MainActivity.this,SecondActivity.class); startActivity(intent);
} }); } @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} }

目标页面

<?

xml version="1.0" encoding="utf-8"?

>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <TextView
android:id="@+id/textView1"
android:layout_width="219dp"
android:layout_height="wrap_content"
android:layout_weight="0.19"
android:text="第二个页面"
/> </LinearLayout>

2.带參数页面跳转

这个演示样例,我们来看下页面跳转并传值,首先A页面跳转到B页面,并传递值,然后B页面返回A页面。同一时候向A页面传递值。

效果图例如以下:

发送内容到B页面

点击返回到A页面。并把页面输入内容传递到A页面

A页面布局和代码

<?xml version="1.0" encoding="utf-8"?

>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"> <LinearLayout android:layout_width="fill_parent" android:layout_weight="0.9" android:layout_height="fill_parent">
   </LinearLayout>    <LinearLayout
android:layout_width="fill_parent"
android:layout_weight="0.1"
android:orientation="vertical"
android:layout_height="fill_parent">   <LinearLayout
android:layout_marginLeft="10px"
android:layout_marginRight="10px"
android:gravity="center"
android:layout_width="fill_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">    <TextView android:textSize="8pt"
android:text="发送内容:"
android:id="@+id/tvSend"
android:layout_weight="0.7"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
  
   </TextView>
  
   <EditText
android:layout_weight="0.3"
android:layout_width="fill_parent"
android:text=""
android:id="@+id/etmsg"
android:layout_height="wrap_content">
  
   </EditText>    </LinearLayout>    <LinearLayout android:layout_marginLeft="10px" android:layout_marginRight="10px" android:gravity="center" android:layout_width="fill_parent" android:orientation="horizontal" android:layout_height="wrap_content">
   <Button android:text="发送"
android:textSize="9pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/btnSend"
> </Button>
   </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_weight="0.9" android:layout_height="fill_parent">
  
<TextView android:textSize="8pt"
android:text="接受返回内容:"
android:id="@+id/tvreturn"
android:layout_weight="0.7"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
  
   </TextView> </LinearLayout>
    </LinearLayout> </LinearLayout>
package com.example.hellotest;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView; public class OrginLayOut extends Activity { private Button btn;//发送button
private EditText edtiText;//发送内容
private TextView tvReturn;//接受子页面返回显示的内容
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.orginlayout); btn=(Button)findViewById(R.id.btnSend);//获取button对象
edtiText=(EditText)findViewById(R.id.etmsg);//获取文本框对象
tvReturn=(TextView)findViewById(R.id.tvreturn); btn.setOnClickListener(new OnClickListener() //绑定注冊button单击事件
{
@Override
public void onClick(View arg0) {
// button跳转
Intent intent = new Intent();
intent.setClass(OrginLayOut.this, TargetActivity.class);
Bundle bundle = new Bundle();
bundle.putString("msg",edtiText.getText().toString());//传值
intent.putExtras(bundle);
// startActivity(intent);
startActivityForResult(intent, 0); } });
} //接受页面的返回值
@Override//requestCode请求标识 //resultCode 返回标识
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 0) {
if(resultCode == Activity.RESULT_OK) {
String content=data.getStringExtra("returnmsg");
tvReturn.setText("接受返回内容:"+content);
}
}
}
}

B页面布局和代码

<?

xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"> <LinearLayout android:layout_width="fill_parent" android:layout_weight="0.9" android:layout_height="fill_parent">
   </LinearLayout>    <LinearLayout
android:layout_width="fill_parent"
android:layout_weight="0.1"
android:orientation="vertical"
android:layout_height="fill_parent">  <LinearLayout android:layout_marginLeft="10px"
android:layout_marginRight="10px"
android:gravity="center"
android:layout_width="fill_parent"
android:orientation="horizontal"
android:layout_height="wrap_content"> <TextView android:textSize="8pt"
android:text="接受内容:"
android:id="@+id/tvreceivemsg"
android:layout_weight="0.7"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</TextView> </LinearLayout>   <LinearLayout
android:layout_marginLeft="10px"
android:layout_marginRight="10px"
android:gravity="center"
android:layout_width="fill_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">    <TextView android:textSize="8pt"
android:text="返回内容:"
android:layout_weight="0.7"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
  
   </TextView>
  
   <EditText
android:layout_weight="0.3"
android:layout_width="fill_parent"
android:text=""
android:id="@+id/etreturnmsg"
android:layout_height="wrap_content">
  
   </EditText>    </LinearLayout>    <LinearLayout android:layout_marginLeft="10px" android:layout_marginRight="10px" android:gravity="center" android:layout_width="fill_parent" android:orientation="horizontal" android:layout_height="wrap_content">
   <Button android:text="返回"
android:textSize="9pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/btnreturn"
> </Button>
   </LinearLayout>     </LinearLayout> </LinearLayout>
package com.example.hellotest;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView; public class TargetActivity extends Activity { private TextView tv;
private Button btn;
private EditText returnText;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.targetlayout);
tv=(TextView)findViewById(R.id.tvreceivemsg);
btn=(Button)findViewById(R.id.btnreturn);//获取button对象
returnText=(EditText)findViewById(R.id.etreturnmsg);//获取文本框对象 Bundle bunde = this.getIntent().getExtras();
String strs="接受内容:"+bunde.getString("msg").toString();
tv.setText(strs); btn.setOnClickListener(new OnClickListener() //绑定注冊button单击事件
{
@Override
public void onClick(View arg0) {
// button跳转
Intent data= new Intent();
data.putExtra("returnmsg",returnText.getText().toString());
setResult(Activity.RESULT_OK,data);
finish(); } });
}
}

这里有几个方法我们简单说明下:

                             startActivityForResult 假设父页面想接受子页面的返回值,使用这种方法启动子页面。方法第一个參数代表启动的子页面信息。第二个參数代表请求码,

是整数类型。 请求码requestCode的意思是假设一个子页面有多个父页面能够启动,通过请求码能够推断来自哪个父页面。

onActivityResult(int requestCode, int resultCode, Intent data) 用来接收父页面返回的内容的方法,第一个參数是请求码,第二个參数是返回结果标识resultCode, resultCode主要用来推断哪个子页面返回。 第三个參数就是返回数据

setResult(Activity.RESULT_OK,data); 这种方法主要用于子页面。第一个參数是返回标识,第二个參数是返回数据

下载:http://download.csdn.net/detail/zx13525079024/8136253

.Net程序猿玩转Android开发---(11)页面跳转的更多相关文章

  1. .Net程序猿玩转Android开发---(3)登陆页面布局

    这一节我们来看看登陆页面如何布局.对于刚接触到Android开发的童鞋来说.Android的布局感觉比較棘手.须要结合各种属性进行设置,接下来我们由点入面来 了解安卓中页面如何布局,登陆页面非常eas ...

  2. .Net程序猿玩转Android开发---(8)表格布局TableLayout

    表格布局TableLayout是Android中比較经常使用的一个布局控件,既然是表格,肯定有行和列,TableLayout中的行有TableRow组成.列依据每行控件的数量来确定 假如第一行有3个控 ...

  3. .Net程序猿玩转Android开发---(7)相对布局RelativeLayout

                 相对布局RelativeLayout是Android布局中一个比較经常使用的控件,使用该控件能够布局出适合各种屏幕分辨率的布局,RelativeLayout採用相对位置进行 ...

  4. .Net程序猿玩转Android开发---(6)线性布局LinearLayout

                                LinearLayout控件是Android中重要的布局控件,是一个线性控件,所谓线性控件的意思是指该控件里面的内容仅仅能水平或垂直排列.也就 ...

  5. .Net程序员玩转Android开发--ListView单击事件

    public class ListViewClickActivity extends Activity {         private ListView lv;        SimpleAdap ...

  6. Android开发之页面跳转传递list集合

    这篇随笔这里详细记录两个activity之间如何传递list集合中的数据. 1.首先要对javabean进行序列化处理,即实现Serializable. package com.anhua.bean; ...

  7. .Net程序员玩转Android系列之一~Java快速入门

    前言 前段时间受公司业务发展需要,探索性进入Android开发领域.一切从零开始,java基础,Java进阶,Android框架学习,Eclipse熟悉,最终到第一个即时通讯App完成,历经一个月的时 ...

  8. 作为一个程序员怎么通过android开发赚钱

    ​ 上面是一个程序员通过Android开发每天的收入,信则有! 自己学安卓差不多,有一年了.我本来是从事javaweb开发的,可能学习安卓上手会快点.其实安卓没有那难 .首先开发安卓程序,要有一个,开 ...

  9. Android开发 navigation的跳转动画实现

    前言 此篇博客只简短的介绍navigation如何添加跳转页面的动画属性,如果你还为接触了解过navigation.建议你看我另一篇博客Android开发 navigation入门详解 创建动画xml ...

随机推荐

  1. python 分词计算文档TF-IDF值并排序

    文章来自于我的个人博客:python 分词计算文档TF-IDF值并排序 该程序实现的功能是:首先读取一些文档,然后通过jieba来分词,将分词存入文件,然后通过sklearn计算每一个分词文档中的tf ...

  2. 在Linux上使用iptables命令开启对外访问的网络端口

    如果linux下没有开启对某端口访问权限,你可以通过下面的命令可以开启允许对外访问的网络端口,示例如下: [root@asg76 sysconfig]# iptables -I INPUT -p tc ...

  3. Cass环境下光标无显示

    先安装CAD2004,十字光标正常显示:再安装CASS7.0,光标就不显示了.现在不清楚是CAD的问题,还是CASS的问题,多半是后者.重新配置了CASS环境也不行. 于是,打开CAD选项,显示,窗口 ...

  4. Asp.net 之页面处理积累(一)

    1.实现超链接跳转网页直接定位到跳转后页面中部,而不是要往下拖,才能看到想看的内容 (1)在跳转后页面想定位的位置加:<a name="middle" id="mi ...

  5. 互斥锁属性PTHREAD_MUTEX_RECURSIVE

    四.互斥锁属性 线程和线程的同步对象(互斥量,读写锁,条件变量)都具有属性.在修改属性前都需要对该结构进行初始化.使用后要把该结构回收.我们用pthread_ mutexattr_init函数对pth ...

  6. gravatar全球通用头像设定

    一:说明: gravatar的头像设定,可以用于wordpress,github等社区: 一次设定,全球同步显示: 目前gravatar已不支持注册,需要注册wordpress.com,然后登录: w ...

  7. UITextView自适应高度

    - (float) heightForTextView: (UITextView *)textView WithText: (NSString *) strText{ float fPadding = ...

  8. 解决java.sql.SQLException: Incorrect string value: '\xE6\x88\x91\xE7\x9A\x84...' for column 'groupName'

    今天使用mysql,用java程序往mysql中写数据,出现如下错误: Caused by: java.sql.SQLException: Incorrect string value: '\xD3\ ...

  9. sp_trace_setevent sqlserver跟踪事件及列

    常用几个事件 10 RPC:Completed12 SQL:BatchCompleted43 SP:Completed sp_trace_setevent sp_trace_setevent [ @t ...

  10. Debian GNU Linux服务列表的获取、服务的关闭/开启、服务在启动时是否自己主动执行的生效/失效

    /*********************************************************************  * Author  : Samson  * Date   ...