AndroidActivity 类用于在屏幕上绘制用户界面。
通常情况下,一个完整的安卓应用由多个活动组成。当你从主屏幕打开应用程序时,一个Activity ,作为主要的入口。
另一个Activity ,当你需要做一个特定的任务时,就会被执行,以此类推。
在你的应用程序中定义了多个活动,你需要一种方法在活动之间移动。
要改变你的应用程序中当前活动的Activity ,你需要运行Activity 类中的startActivity() 方法。
例如,以下是在Java中从MainActivity 移动到SecondActivity 的代码:
Intent secondActivityIntent = new Intent(this, SecondActivity.class);
startActivity(secondActivityIntent);
上面的两行代码就是你需要从一个活动移到另一个活动的全部内容。
你可以把上面的代码放在MainActivity 类的onCreate() 方法中进行尝试:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent secondActivityIntent = new Intent(
this, SecondActivity.class
);
startActivity(secondActivityIntent);
}
}
首先要确保你的项目中有一个名为SecondActivity 的活动。一个空的活动就可以了。
当你启动应用程序时,屏幕将自动移动到SecondActivity 。
为了看到这种变化,让我们创建Intent 对象并在点击Button 时运行startActivity() 方法。
这里是MainActivity 类的代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button buttonSecondActivity = findViewById(
R.id.button_second_activity
);
buttonSecondActivity.setOnClickListener(view -> {
Intent secondActivityIntent = new Intent(
getApplicationContext(), SecondActivity.class
);
startActivity(secondActivityIntent);
});
}
}
而这里是activity_main.xml 文件的代码:
<androidx.constraintlayout.widget.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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/button_second_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Move to Second Activity"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
接下来,让我们用以下代码创建SecondActivity 类:
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Button buttonMainActivity = findViewById(
R.id.button_main_activity
);
buttonMainActivity.setOnClickListener(view -> {
Intent mainActivityIntent = new Intent(
getApplicationContext(), MainActivity.class
);
startActivity(mainActivityIntent);
});
}
}
<androidx.constraintlayout.widget.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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SecondActivity">
<Button
android:id="@+id/button_first_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Move to Main Activity"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
现在代码已经完成,运行应用程序。
你会看到,当你点击按钮时,活动会发生变化。你也可以通过点击设备上的 "返回"按钮返回到之前的活动。
你可以在这里看到Java语言的完整代码:
nsebhastian/JavaChangeActivity
对于Kotlin,可以在这里找到资源库:
nsebhastian/KotlinChangeActivity
现在你已经学会了如何在Android中从一个活动转换到另一个活动,干得好!👍