页面跳转用到的关键字:intent。
intent是连接activity组件的桥梁,分为显式和隐式两种,其中显式intent是直接指定需要打开activity对应的类。而隐式不直接指定需要调用的activity,通过设action,data,category让系统筛选出合适的Acticity。例如:
这里如果是显式intent,则会自动跳转到默认地图里,而隐式就会打开可供用户选择的地图类型,很容易区分。
下面用一个实例展示用显式intent实现注册页面的跳转功能。
Login.java
package activity;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import net.hnjdzy.tinyaccount.R;
public class LoginActivity extends AppCompatActivity {
Button btnLogin;
EditText editTextName, editTextPwd;
TextView textViewRegister;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);//xml和java连接起来
btnLogin = (Button) this.findViewById(R.id.buttonLogin);//绑定按钮登录框
editTextName = (EditText) this.findViewById(R.id.editTextName);//绑定用户名登录框
editTextPwd = (EditText) this.findViewById(R.id.editTextPassword);//初始化控件
textViewRegister = (TextView) this.findViewById(R.id.textViewRegister);
btnLogin.setOnClickListener(new View.OnClickListener() {//通过匿名内部类,实现点击事件监听器接口
@Override
public void onClick(View v) {//视图被点击以后调用
Login();
}
});//监听器回调Login方法
textViewRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Register();
}
});
}
//定义登录方法
private void Login() {
String name = editTextName.getText().toString(); //获取文本框输入的姓名
String pwd = editTextPwd.getText().toString();//获取文本框输入的密码
if (name.equals("admin") && pwd.equals("admin")) {
Toast.makeText(this, "登录成功", Toast.LENGTH_LONG).show();//弹出登录成功窗口,要用到Toast类的makeText方法
//三个信息,第一个上下文,第二个提示的信息,第三个提示显示的时间
} else {
Toast.makeText(this, "登录失败", Toast.LENGTH_LONG).show();//弹出登录失败窗口
}
}
//定义跳转方法
private void Register() {
Intent intent=new Intent();//创建intent对象
intent.setClass(this,RegisterActivity.class);//指定从当前页面跳转登录页面
startActivity(intent);//启动intent
}
}
activity_Login.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="activity.LoginActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
app:srcCompat="@drawable/default_user_logo" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:ignore="ExtraText"
android:layout_marginTop="50dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
>
<TextView
android:id="@+id/textView11"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="用户昵称" />
<EditText
android:id="@+id/editTextName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:hint="请输入用户名" />
<TextView
android:id="@+id/textView13"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="密码" />
<EditText
android:id="@+id/editTextPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword"
android:hint="请输入密码"
tools:ignore="OnClick" />
<Button
android:id="@+id^ttonLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FF8833"
android:text="登录" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_marginTop="20dp"
>
<TextView
android:id="@+id/textViewNoPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/colorPrimary"
android:layout_weight="1"
android:layout_marginLeft="10dp"
android:text="忘记密码" />
<TextView
android:id="@+id/textViewRegister"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/colorPrimary"
android:layout_weight="1"
android:gravity="right"
android:layout_marginRight="10dp"
android:text="注册用户" />
</LinearLayout>
</LinearLayout>
activity_register.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
tools:context="activity.RegisterActivity">
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:background="@color/colorPrimary"
app:srcCompat="@drawable/user_reg" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/imageView2"
android:layout_marginStart="35dp"
android:layout_marginTop="10dp"
android:text="昵称" />
<EditText
android:id="@+id/editTextTextPersonName3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:layout_below="@id/textView2"
android:layout_marginStart="35dp"
android:layout_marginEnd="35dp"
android:layout_marginTop="10dp"
android:hint="请输入用户名" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="35dp"
android:layout_marginTop="10dp"
android:layout_below="@id/editTextTextPersonName3"
android:text="密码" />
<EditText
android:id="@+id/editTextTextPassword2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:layout_below="@id/textView4"
android:layout_marginLeft="35dp"
android:layout_marginRight="35dp"
android:layout_marginTop="10dp"
android:hint="请输入密码"
android:inputType="textPassword" />
<EditText
android:id="@+id/editTextTextPassword3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:layout_below="@id/editTextTextPassword2"
android:layout_marginStart="35dp"
android:layout_marginEnd="35dp"
android:layout_marginTop="10dp"
android:hint="确认密码"
android:inputType="textPassword" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/editTextTextPassword3"
android:layout_marginStart="35dp"
android:layout_marginTop="10dp"
android:text="密码提示" />
<EditText
android:id="@+id/editTextTextPersonName4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:layout_marginStart="35dp"
android:layout_marginEnd="35dp"
android:layout_marginTop="10dp"
android:layout_below="@id/textView5"
android:hint="密码提示"/>
<Button
android:id="@+id^tton2"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="50dp"
android:layout_centerHorizontal="true"
android:background="#FF83"
android:text="注册" />
</RelativeLayout>