活动(Activity)创建与页面跳转

Xamarin.Android 活动(Activity)创建与页面跳转

活动的创建

创建Activity步骤:

  1. 右键项目 → 添加 → 项目‑活动,新建Activity类
  2. 右键Layout目录,添加布局视图文件
  3. 在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

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

总结

  1. SetContentView():Activity绑定Layout布局,把xml界面加载到页面
  2. FindViewById<T>(资源Id):从布局中查找UI控件,泛型T是控件类型(Button/TextView)
  3. 按钮事件两种写法:Lambda表达式(sender,e)=>{}匿名委托delegate{}
  4. 页面跳转两种写法:
  • 简化版:StartActivity(typeof(目标Activity))
  • Intent完整版:new Intent(this, typeof(目标)) + StartActivity(intent)
  1. 新建Activity之后,AndroidManifest会自动注册,不用手动配置。

注意:反复StartActivity会不断新建页面实例,会堆积在返回栈;如果只是想关闭当前页面回到上一页,更推荐调用Finish(),而不是再StartActivity一遍主页面。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注