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
相关产品推荐
相关产品推荐

