R.string.value帮助android通知

时间:2010-07-29 13:59:35

标签: android int charsequence

达成协议
 CharSequence contentTitle = R.string.value;

错误无法从int转换为CharSequence。有没有办法绕过这个或我错过了什么? 我试过了

String s = R.string.value + "";
CharSequence contentTitle = s;

它返回整数值。 有什么帮助吗?

4 个答案:

答案 0 :(得分:55)

R.string.value是对R类中静态字段的调用,它是由Eclipse自动生成的,它对所有资源进行了总结。要检索字符串,您需要使用:

CharSequence contentTitle = getString(R.string.value);

如果您打开R类,您将看到它只包含引用项目编译资源的数字。

答案 1 :(得分:7)

要检索字符串,您需要使用getString(),

但getString()是Context类的方法。 如果要在Activity类之外使用此方法,则应首先链接到上下文,然后调用:

String s = mContext.getString(R.string.somestring)

答案 2 :(得分:1)

R.string.value返回资源“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()

我不知道这是否是最佳的长期解决方案,但它似乎暂时有用。希望这会有所帮助。

答案 3 :(得分:0)

您也可以使用String s = getResources().getString(R.string.value);