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

Visual Studio C#下Xamarin Android设置Toolbar标题报类型转换错误求助

解决Xamarin Android中Toolbar.SetTitle传入字符串报错的问题

嘿,我刚好碰到过这个问题!你遇到的“Cannot convert from string to int”错误,本质是**V7Toolbar的SetTitle方法默认只接受资源ID(int类型)**,直接传字符串自然会触发类型不匹配的报错。下面给你几种靠谱的解决办法:

方法一:通过SupportActionBar设置标题(最推荐)

既然你已经调用了SetSupportActionBar(toolbar)把Toolbar设为ActionBar,那直接通过SupportActionBar的Title属性赋值就好,这个属性支持直接传入字符串:

var toolbar = FindViewById<V7Toolbar>(Resource.Id.toolbar);
SetSupportActionBar(toolbar);
// 这里直接给Title属性赋值字符串即可
SupportActionBar.Title = "This is the title";

这种方式最简洁,也是官方推荐的常规用法。

方法二:给Toolbar的SetTitle传字符串类型的重载

如果一定要直接调用Toolbar的SetTitle方法,你可以使用接受Java.Lang.ICharSequence类型的重载,把C#字符串转成对应的Java类型:

var toolbar = FindViewById<V7Toolbar>(Resource.Id.toolbar);
// 把C#字符串包装成Java.Lang.String传入
toolbar.SetTitle(new Java.Lang.String("This is the title"));
SetSupportActionBar(toolbar);

不过这种写法有点繁琐,一般不如第一种实用。

方法三:使用字符串资源ID(适合多语言场景)

如果你的项目需要做多语言本地化,更规范的做法是把标题定义在字符串资源文件里:

  1. 打开Resources/values/strings.xml,添加标题资源:
<string name="toolbar_main_title">This is the title</string>
  1. 代码里传入资源ID:
var toolbar = FindViewById<V7Toolbar>(Resource.Id.toolbar);
// 传入字符串资源的ID(int类型)
toolbar.SetTitle(Resource.String.toolbar_main_title);
SetSupportActionBar(toolbar);

这种方式能轻松适配不同语言的资源文件,适合正式项目开发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:14:29