JreduCh04 2016-07-30
跳转 (由一个画面跳转到另一个画面)
两种方法:Intent中 startActivity、startActivityForResult。
后者可设置requestCode(申请码)用于获得返回值,即由一个画面传数据到
多个画面(相同的数据),完成不同的功能,此时的requestCode的可通过判断
来获得返回值。
例;startActivity 在第一个画面中设置一个按钮,按下按钮跳转到第二个画面。
lay_out中,相对布局中设置一个Button,id为bt1;

<?xml version="1.0" encoding="utf-8"?>
<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="com.example.administrator.jreduch04.MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/bt1"
android:text="跳转"
android:layout_below="@+id/textView"
android:layout_alignStart="@+id/bt2"
android:layout_marginTop="52dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/bt2"
android:text="跳转返回结果"
android:layout_below="@+id/bt1"
android:layout_toEndOf="@+id/textView"
android:layout_marginTop="52dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="100dp"
android:id="@+id/tv"
android:text="结果是:"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_marginBottom="102dp"
android:textColor="#ee1414"
android:textIsSelectable="false" />
</RelativeLayout>

MainActivity:

package com.example.administrator.jreduch04;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
private Button bt1; //设置以一个Button,测试startActivity
private Button bt2; //设置第二个Button,测试startActivityForResult
private TextView tv; //设置一个TextView ,用于显示测试startActivityForResult返回的值

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt1 = (Button) findViewById(R.id.bt1);//通过 findViewById找到
//Button,设置id的作用就是
//通过findViewByld找到;
tv = (TextView) findViewById(R.id.tv);
bt2 = (Button) findViewById(R.id.bt2);
bt1.setOnClickListener(new View.OnClickListener() { //设置一个bt1的
@Override //点击事件
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent); //Intent的
//有两个参数,
} //MainActivity.this(第一个画面)
}); //SecondActivity.class(第二个画面)

button.setOnClickListener(new View.OnClickListener() { //设置一个Button,
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,ThActivity.class);
startActivityForResult(intent, 119);
}
});
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
intent.putExtra("arg1",5); //intent.putExtra把名为arg1值为5,arg2
intent.putExtra("arg2", 6); //值为6,传给SecondActivity
startActivityForResult(intent, 110); //110自己设置,即为申请码

}
});
protected void onActivityResult(int requestCode, int resultCode, Intent data) { //与startActivityForResult配套
super.onActivityResult(requestCode, resultCode, data); //requestCode(申请码), 用于判断
Intent intent = getIntent(); //发出的哪个请求 resultCode(结果吗),
if(requestCode ==110){ //110即为上面设置的 //可用来判断是哪个Activity返回的数据
tv.setText("结果是加法:" + resultCode);} //resultCode为SecondActivity中设置的结果码 ,但结果码为"arg1+arg2",就实现了相加的操作
else if(requestCode ==119){
tv.setText("老师:"+data.getStringExtra("re"));//得到ThActivity中的EditView中的文本
}
}
}

package com.example.administrator.jreduch04;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class SecondActivity extends AppCompatActivity { //SecondActivity 第二个画面

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Intent intent= getIntent(); //必须使用Intention方法
int arg1 = intent.getIntExtra("arg1",0);//调用方法intention.getIntExtra
int arg2 = intent.getIntExtra("arg2",0); //得到MainActivity穿来的
//arg1,arg2;第二个参数为没得到
//setResult(120); //arg1,arg2时的数值。
if(arg1>0 && arg2>0){
setResult(arg1+arg2,intent); //setResult中的第一个参数为resultCode,第二个参数为Intention date,返回相加的数值,
finish(); //不能漏掉,否则不能返回第一个画面
}
}
}

package com.example.administrator.jreduch04;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView; //实现由MainActrivity跳转到ThActivity
//输入问题答案,再MainActivity中显示
public class ThActivity extends AppCompatActivity { //设置第三个Activity
private EditText editText; //设置EditView,输入问题答案
private Button button3; //按下button在MainActivity中显示
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_th);

editText= (EditText) findViewById(R.id.editText);
button3 = (Button) findViewById(R.id.button3);
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=getIntent();
final String st= editText.getText().toString();//得到输入到EditView中的文本
intent.putExtra("re", st); //调用intent.putExtra,返回
setResult(1, intent);
finish();
}
});
}
}

Activity间的跳转,startActivity与startActivityForResult的更多相关文章

  1. Activity组件:(一)通过显式意图和隐式意图来实现Activity间的跳转

    一.通过显式意图来实现Activity间的跳转 显式意图是指在创建Intent对象时就指定接受者组件 /** * 下面是通过显式意图进行跳转,即明确写出要跳转到SecondActivity.class ...

  2. Android Activity间动画跳转

    本博文主要介绍activity间动画跳转的问题,在这里讲一下怎么设置全部activity的动画跳转和退出跳转.事实上有些软件已经这样做了.比方我们都比較熟悉的大众点评网. 以下我们通过一个实例来看一下 ...

  3. Android开发之Activity的创建跳转及传值

    在Android系统的江湖中有四大组件:活动(Activity), 服务(Service), 广播接收器(Broadcast Reciver)和内容提供者(Content Provider).今天所介 ...

  4. android学习日记05--Activity间的跳转Intent实现

    Activity间的跳转 Android中的Activity就是Android应用与用户的接口,所以了解Activity间的跳转还是必要的.在 Android 中,不同的 Activity 实例可能运 ...

  5. Android Activity间跳转与传递数据

    1 概述 Activity之间的跳转主要使用 startActivity(Intent intent); startActivityForResult(Intent intent,int reques ...

  6. Android四大组件之——Activity的开启:StartActivity()和StartActivityForResult()(图文详解)

                如需转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai       联系方式:JohnTsai.Work@gmail.com   ...

  7. 第35讲 Activity入门和跳转

    第35讲Activity入门和跳转 1.Activity Activity是用户接口程序.在Android当中,Activity提供可视化的用户界面,一个Android应用通常由多个activity组 ...

  8. startActivity与startActivityForResult的使用小结

    1.在一个Activity中想要启动进入另一个Activity时,通常我们使用startActivity这个方法来实现,代码如下: 其中MainActivity为源activity,ActivityL ...

  9. 第一课android开发之在activity间传递参数

    一.活动间简单参数传递:1.在布局中添加按钮,用<Button,用id设置id名称,id="@+id/这儿填写你要设置成的名称":用text设置按钮上显示的文字.text=& ...

随机推荐

  1. 【UVA1379】Pitcher Rotation (贪心+DP)

    题意: 你经营者一直棒球队.在接下来的g+10天中有g(3<=g<=200)场比赛,其中每天最多一场比赛.你已经分析出你的n(5<=n<=100)个投手中每个人对阵所有m个对手 ...

  2. poj3519

    凡是差分约束系统的题目都是转化为d[j]-d[i]<=w[i,j]的形式然后我们建立边i-->j 边权为w[i,j]对于这道题,要求d[n]-d[1]尽可能的大设d[i]为相对差,d[1] ...

  3. vijosP1902学姐的清晨问候

    题目:https://vijos.org/p/1902 题解:sb题...扫一遍每个字母出现的次数即可 代码: #include<cstdio> #include<cstdlib&g ...

  4. Server.Transfer方法,Server.Execute方法和Response.Redirect方法有什么异同

    (1)Server.Transfer方法: Server.Transfer("m2.aspx");//页面转向(服务器上执行). 服务器停止解析本页,保存此页转向前的数据后,再使页 ...

  5. 支付宝APP支付(Java后台生成签名具体步骤)

    /** *支付宝支付 * @param orderId 订单编号 * @param actualPay 实际支付金额 * @return */ private String getOrderInfoB ...

  6. bzoj 1026 [SCOI2009]windy数(数位DP)

    1026: [SCOI2009]windy数 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 4550  Solved: 2039[Submit][Sta ...

  7. 【原】centos6.5下cdh4.6 Oozie安装

    0.oozie只需安装在一台服务器上,这里选择在namenode上来安装:安装用户为cloud-user 1.安装Oozie包:    sudo yum install -y oozie oozie- ...

  8. 《University Calculus》-chape3-微分法-基本概念、定理

    所谓微分法其实就是我们所熟悉的导数,它是一种无限分割的方法,同积分法一样,它们是处理曲线和曲面的有利工具,也是一门很伟大的自然语言.微分方程就是一种名副其实的描述自然的语言. 同样这里如果取单侧导数, ...

  9. Django路由系统

    django路由系统 简而言之,django的路由系统作用就是使views里面处理数据的函数与请求的url建立映射关系.使请求到来之后,根据urls.py里的关系条目,去查找到与请求对应的处理方法,从 ...

  10. Google表格

    本博文的主要内容有  .Google表格的介绍 https://www.google.com/intl/zh-CN/sheets/about/ https://accounts.google.com/ ...