getString(int resId, Object... formatArgs)的用法

public final String getString (int resId,Object... formatArgs)
Return a localized formatted string from the application's package's default string table, substituting the format arguments as defined inFormatter andformat(String, Object...).
官方文档地址:http://developer.android.com/reference/android/content/Context.html#getString%28int,%20java.lang.Object...%29

使用示例:

1. %s对应字符串
String tiptext =getString(R.string.format_error,"用户名","昵称","密码");

strings.xml 中 format_error 为:

<string name="format_error">请使用%1$s:%2$s:%3$s的格式</string>

返回结果: tiptext ="请使用用户名:昵称:密码的格式";


2.%d 对应整数
String tiptext =getString(R.string.photo_select_complete, 3,10));

strings.xml 中 photo_select_complete 为:

<string name="photo_select_complete">完成(%1$d/%2$d)</string>

返回结果: tiptext ="完成(3/10)";

注意:%d 对应整数 %s对应字符串
————————————————
版权声明:本文为优快云博主「cswhale」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/cswhale/article/details/50779699

<think>好的,用户的问题是关于如何在Android或C#中使用GetString方法和Resource.String。首先,我需要确认用户具体指的是哪个平台,因为Android和C#(尤其是Xamarin)中的Resource.String可能有不同的用法。 首先,用户提到了GetString方法和Resource.String,可能是在Android开发中使用资源字符串。在Android中,通常会在res/values/strings.xml里定义字符串资源,然后通过R.string.string_name获取资源ID,再使用getString()方法获取实际字符串。例如,在Activity中调用getString(R.string.app_name)。可能需要解释这个过程,并提供代码示例。 另外,用户也可能指的是C#中的Resource.String,尤其是在Xamarin.Android开发中,因为Xamarin允许使用C#进行Android开发。在Xamarin中,资源文件的访问方式类似,但语法稍有不同。例如,使用Application.Context.Resources.GetString(Resource.String.app_name)。需要区分这两种情况,并分别给出示例。 用户还可能遇到问题,比如资源未找到或动态获取资源的情况。这时候需要提醒用户检查资源ID是否正确,或者使用ResourceManager来获取字符串。此外,Xamarin中的资源管理可能会有一些陷阱,比如资源生成的问题,需要确保资源文件被正确编译。 还要注意用户是否混淆了不同平台或框架中的方法,比如在ASP.NET中ResourceManager的使用,或者在WPF中的资源访问方式。需要明确用户的使用场景,但根据问题中的Android或C#,应该集中在Xamarin.Android或原生Android开发上。 此外,用户提供的参考引用中有提到ResourceString数据类型和临时文件清理的问题,这可能涉及到资源管理的底层机制,但用户主要问题可能更基础,需要先解决如何正确使用GetString和Resource.String的基本用法,再考虑可能出现的错误。 总结下来,回答需要分两部分:Android原生和C#(Xamarin),分别说明如何定义字符串资源和获取它们的方法,并提供代码示例。同时,需要指出常见问题及解决方法,如资源ID不存在或动态上下文的使用。</think>### 如何在不同平台使用`GetString`与`Resource.String` #### 1. **Android原生开发(Java/Kotlin)** 在Android中,`Resource.String`用于管理字符串资源,通过`R.string`引用资源ID,`getString()`方法用于获取具体值。 **步骤:** - **定义字符串资源** 在`res/values/strings.xml`中添加: ```xml <string name="welcome_message">Hello, User!</string> ``` - **通过`getString()`获取值** 在Activity或Fragment中调用: ```java // Java示例 String message = getString(R.string.welcome_message); ``` #### 2. **C#(Xamarin.Android)** Xamarin.Android通过`Resource.String`访问资源,需使用`GetString()`方法。 **步骤:** - **定义字符串资源** 在`Resources/values/strings.xml`中添加: ```xml <string name="welcome_message">Hello from Xamarin!</string> ``` - **使用`GetString()`** 在C#代码中: ```csharp // 需要上下文(如Activity) var message = Application.Context.Resources.GetString(Resource.String.welcome_message); // 或在Activity内直接调用 string message = GetString(Resource.String.welcome_message); ``` #### 3. **常见问题与解决** - **资源ID未找到** 确保XML文件无语法错误,且资源名称拼写正确。清理并重新生成项目(Android Studio中点击`Build > Clean Project`)[^1]。 - **动态获取资源(无上下文)** 若在非Activity类中,需传递上下文参数: ```csharp // C#示例 public class Utils { public static string GetWelcomeMessage(Context context) { return context.Resources.GetString(Resource.String.welcome_message); } } ``` - **Xamarin资源生成问题** 检查`strings.xml`是否设置为`AndroidResource`编译类型。若修改后未生效,删除`obj/bin`文件夹并重新编译[^2]。 #### 4. **其他场景(ASP.NET/C#)** 若问题涉及通用C#资源管理(如`.resx`文件),可通过`ResourceManager`访问: ```csharp // 添加资源文件 Strings.resx string message = Properties.Resources.WelcomeMessage; ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值