有什么关系
CharSequence contentTitle = R.string.value;
错误无法从 int 转换为 CharSequence。有没有办法解决这个问题或者我错过了什么?我试过
String s = R.string.value + "";
CharSequence contentTitle = s;
它返回整数值。有什么帮助吗?
有什么关系
CharSequence contentTitle = R.string.value;
错误无法从 int 转换为 CharSequence。有没有办法解决这个问题或者我错过了什么?我试过
String s = R.string.value + "";
CharSequence contentTitle = s;
它返回整数值。有什么帮助吗?
R.string.value
是对 R 类中的静态字段的调用,它是由 Eclipse 自动生成的,它对您的所有资源进行了一种总结。要检索字符串,您需要使用:
CharSequence contentTitle = getString(R.string.value);
如果您打开 R 类,您将看到它仅包含引用您项目的已编译资源的数字。
要检索字符串,您需要使用 getString(),
但 getString() 是来自 Context 类的方法。如果你想在你的 Activity 类之外使用这个方法,你应该首先链接到你的上下文,然后调用:
String s = mContext.getString(R.string.somestring)
R.string.value 返回资源“值”的参考 ID 号。如果您查看您的 R 类,它将显示为如下所示:
public static final class string {
public static final int value=0x7f040007;
}
我在引用 getString() 方法时遇到了问题。Eclipse 向我吐口水的确切错误是:
对于 DatabaseHelper.MainDatabaseHelper 类型,方法 getString(int) 未定义
在阅读了一段时间后,我发现您必须引用应用程序的上下文才能访问 getString() 方法。我试图在内容提供程序中创建一个私有 SQLDatabase 帮助程序类,但是,这不允许我引用 getString() 方法。到目前为止,我的解决方案是执行以下操作:
private class MainDatabaseHelper extends SQLiteOpenHelper {
MainDatabaseHelper(Context context) {
super(context, context.getString(R.string.createRoutesTable), null, 1);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL((getContext()).getString(R.string.createRoutesTable));
}
}
注意这两个上下文引用:
上下文.getString()
(getContext()) .getString()
我不知道这是否是最佳的长期解决方案,但目前似乎可行。希望这可以帮助。
你也可以用String s = getResources().getString(R.string.value);
。