You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Android重复跳转Activity触发InflateException问题求助

解决Xamarin Android中InflateException的问题

我来帮你排查这个Android.Views.InflateException的问题,结合你的代码和描述,主要有两个关键原因需要修复:

1. XML布局文件不完整

你提供的FirstLay.xml明显没有写完,最后一行的RadioButton标签属性被截断了:

<RadioButton android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:checked="false"
    android:text="賳毓賲"
    android:layout_marginLeft="50dp"
    android:te

这种不完整的XML会导致Android系统无法正确解析布局结构,直接抛出Inflate异常。

解决方案:
补全这个RadioButton的所有属性,确保整个XML文件的标签都正确闭合——比如补全截断的属性(如android:textColor),并检查所有RadioGroup、LinearLayout等容器标签都有对应的闭合标签。

2. 返回MainActivity的方式错误

你在FirstAct中使用StartActivity(typeof(MainActivity))来返回主界面,这会创建一个新的MainActivity实例,而不是回到之前已经存在的那个。多次这样操作会导致Activity栈中堆积多个实例,不仅浪费内存,也可能间接引发布局加载异常。

正确的返回方式:
调用Finish()方法关闭当前的FirstAct,系统会自动回到栈中的上一个Activity(也就是最初的MainActivity)。另外你原来的代码漏了获取返回按钮实例的逻辑,补上后代码如下:

protected override void OnCreate(Bundle savedInstanceState)
{
    base.OnCreate(savedInstanceState);
    try
    {
        SetContentView(Resource.Layout.FirstLay);
        // 先获取返回按钮实例,替换成你布局中按钮的实际ID
        var reBtn = FindViewById<Button>(Resource.Id.reBtn);
        reBtn.Click += delegate {
            Finish(); // 关闭当前Activity,回到上一个页面
        };
    }
    catch (Java.Lang.Exception ex)
    {
        Toast.MakeText(this, ex.ToString(), ToastLength.Short).Show();
    }
}

总结

先把FirstLay.xml补全并确保格式正确,再修改返回逻辑为Finish(),同时补上按钮控件的初始化代码,这样再次跳转FirstAct时就不会出现InflateException了。

内容的提问来源于stack exchange,提问作者Wassim01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:53:08