1.android的activity之间跳转切换并传递参数是经常使用到的,下面是一个android的登录跳转案例,使用RelativeLayout绝对布局来实现,activity_main.xml代码如下。
<?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:orientation="horizontal" tools:context="com.baidu.jiaoyou.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="用户名:" android:layout_marginTop="100dp" android:layout_marginLeft="50dp" android:textSize="20dp" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="90dp" android:layout_marginLeft="120dp" android:inputType="text" android:ems="10" android:id="@+id/username" android:layout_weight="1" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="密 码:" android:layout_marginTop="180dp" android:layout_marginLeft="50dp" android:textSize="20dp" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="170dp" android:layout_marginLeft="120dp" android:inputType="textPassword" android:ems="10" android:id="@+id/password" android:layout_weight="1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="240dp" android:layout_marginLeft="50dp" android:background="@color/accent_material_dark" android:width="120dp" android:textSize="20dp" android:text="点击登录" android:id="@+id/loginBtn" android:layout_gravity="center_vertical" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="240dp" android:layout_marginLeft="210dp" android:background="@color/accent_material_dark" android:width="120dp" android:textSize="20dp" android:text="找回密码" android:id="@+id/forgetBtn" android:layout_gravity="center_vertical" /> </RelativeLayout>
android登录界面效果如图。

2.输入用户名,点击登录按钮则跳转到另外一个activity界面,并将用户名传递到下一个activity中,MainActivity.java处理类代码如下。
package com.baidu.jiaoyou;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
private EditText userText;
private EditText pwdText;
private Button loginBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userText = (EditText)findViewById(R.id.username);
pwdText = (EditText)findViewById(R.id.password);
loginBtn = (Button)findViewById(R.id.loginBtn);
//跳转到我的空间页面并携带参数
loginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
//参数1:本类 参数2:目标java类
intent.setClass(MainActivity.this,MyspaceActivity.class);
//给MyspaceActivity传递一个key为sayhello的参数
intent.putExtra("sayhello","hello,"+userText.getText()+",这是你的空间");
startActivity(intent);
//返回动画,从右到左滑动(从左到右的动画暂无)
overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
}
});
}
}3.目标activity为activity_myspace.xml界面代码如下。
<?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" tools:context="com.baidu.jiaoyou.MyspaceActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:textSize="20dp" android:id="@+id/helloText" android:text="Hello,Janwang,这是你的空间!" /> </RelativeLayout>
4.activity_myspace.xml对应的MyspaceActivity.java处理类接收上个acitivity传递过来的参数,代码如下。
package com.baidu.jiaoyou;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MyspaceActivity extends AppCompatActivity {
private TextView helloText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_myspace);
//获取文本标签的对象
helloText = (TextView)findViewById(R.id.helloText);
//获取intent对象
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
//根据key获取值
String hello = bundle.getString("sayhello");
//显示给TextView标签
helloText.setText(hello);
}
}在登录界面输入“zhangsan”,点击登录之后activity跳转传递参数的执行结果如图所示:
