第五篇-以显式意图(Explicit Intent)跳往其它Activity
此项目基于第四篇。
Intent(意图)
Explicit Intent(显式意图):
- 清楚指明需要前往的Activity的名称
- 用于APP内部的连接
Inplicit Intent(隐式意图):
- 不明确知名需前往的Activity名称
- 只提出大概意图:
- 如开启一个网页(但不指明用哪个浏览器打开)
- 拨打一个电话(但不指明用哪个通讯工具执行)
- 一般用于呼叫APP内部以外的系统功能
app/res/layout下新建一个layout.xml文件,同样右击linearLayout,Convert view。。。变为ConstraintLayout。
拉一个TextView到预览界面,修改text为Screen #1,连接上左右三个方向,接着改变文字大小,右侧拉到最下方,点击View all attributes,将textsize设为80sp,点击textcolor后面...,选择颜色为colorAccent,点击ok。
在拉一个Button按钮到预览界面。设置其文字为Jump To Screen #2。连接左右,并将上方连接到TextView的下方。如果觉得按钮和文本距离太近了,可以改变距离,在右侧可以看到一个方块,上左右分别显示8,如果相让给文本和按钮距离变大,可以讲过按钮上方的距离由8变为32。并将layout_width变为match_constraint。
在app/java/com...就是之前放main.java的路径下新建一个java文件。new->activity->empty activity。注意过程中不要在Launcher Activity处打勾。将之前设计的页面layout3.xml切换到text模式全选复制,粘贴到layout4.xml下面。修改Screen #1->Screen #2,修改Jump To Screen #2->Jump To Screen #2。现在有两个外观档,layout3.xml,layout4,xml。将layout4.xml和新建的layout4Activity.java关掉,看layout3.xml。如果要让按下按钮Jump To Screen #2跳到Screen #2的页面,即layout4.xml页面,可以在layout3.xml中text文本模式,在Button标签里面添加android:onClick="JumpToScreen2",因此要在mian.java文件中添加一个JumpToScreen2函数。如果想要偷懒的话,就在那一行按住Alt+enter,会自动在.java文件里给你创建一个函数。在里面写入Intent i=new Intent(this,Layout4Activity.class);startActivity(i);此时已经完成了点击按钮会跳入第二个页面。
layout3.xml:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout 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:id="@+id/linearLayout2" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginEnd="8dp" android:text="Screen #1" android:textColor="@color/colorAccent" android:textSize="80sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/button8" android:onClick="JumpToScreen2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="32dp" android:layout_marginEnd="8dp" android:text="Jump To Screen #2" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView" /> </android.support.constraint.ConstraintLayout>
layout4.xml:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout 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:id="@+id/linearLayout2" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginEnd="8dp" android:text="Screen #2" android:textColor="@color/colorAccent" android:textSize="80sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/button8" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="32dp" android:layout_marginEnd="8dp" android:text="Jump To Screen #3" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView" /> </android.support.constraint.ConstraintLayout>
main.java:
package com.example.aimee.aimeetest1; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.layout); setContentView(R.layout.layout3); } public void JumpToScreen2(View view) { Intent i=new Intent(this,Layout4Activity.class); startActivity(i); } }
layout4Activity.java:
package com.example.aimee.aimeetest1; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class Layout4Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout4); } }