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跳转传递参数的执行结果如图所示: