Xamarin.Android 活动(Activity)创建与页面跳转
活动的创建
创建Activity步骤:
- 右键项目 → 添加 → 项目‑活动,新建Activity类
- 右键
Layout目录,添加布局视图文件 - 在Activity重写
OnCreate方法,调用SetContentView绑定布局
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
//绑定布局文件
SetContentView(Resource.Layout.content_main);
}Code language: JavaScript (javascript)

以上是添加活动后的代码,还没有绑定布局,下一步在layout文件夹下面添加一个布局。

打开创建的活动axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:text="返回主活动"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btn1" />
</LinearLayout>Code language: HTML, XML (xml)
里面添加了一个按钮,用来返回到主活动。
修改上面的活动种的OnCreate函数

使得活动绑定到这个layout2布局
主活动跳转到第二个活动
手动构造Intent跳转

如下是主活动的点击事件里面,构建一个Intent,typeof里面指明是那个活动
button.Click += (sender, e) =>
{
var second = new Intent(this, typeof(Activity1));
StartActivity(second);
};Code language: JavaScript (javascript)
子活动返回回到主Activity
- 快捷键
Ctrl+N,新建布局,布局里面添加Button按钮 - 在第二个Activity的代码中,通过
FindViewById拿到按钮控件,注册Click事件,点击后跳转回主页面MainActivity
//根据Id找到布局上的按钮
Button button = FindViewById<Button>(Resource.Id.mySecondButton);
button.Click += (sender, e) =>
{
//跳回主活动MainActivity
StartActivity(typeof(MainActivity));
};Code language: JavaScript (javascript)

总结
SetContentView():Activity绑定Layout布局,把xml界面加载到页面FindViewById<T>(资源Id):从布局中查找UI控件,泛型T是控件类型(Button/TextView)- 按钮事件两种写法:Lambda表达式
(sender,e)=>{}、匿名委托delegate{} - 页面跳转两种写法:
- 简化版:
StartActivity(typeof(目标Activity)) - Intent完整版:new Intent(this, typeof(目标)) + StartActivity(intent)
- 新建Activity之后,AndroidManifest会自动注册,不用手动配置。
注意:反复
StartActivity会不断新建页面实例,会堆积在返回栈;如果只是想关闭当前页面回到上一页,更推荐调用Finish(),而不是再StartActivity一遍主页面。
Previous: Activity 7大生命周期
Next: Activity 之间 Intent 传值