R.string.value Help android notification

懵懂的女人 提交于 2019-12-04 15:37:41

问题


whats the deal with

 CharSequence contentTitle = R.string.value;

Error cannot convert from int to CharSequence. Is there a way around this or am i missing something? i tried

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

it returns integers values. Any help?


回答1:


R.string.value is a call to the static field in the class R, which is auto generated by Eclipse and which does a kind of summary of all your resources. To retrieve the string, you need to use :

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

If you open the R class you will see that it contains only numbers that are references to the compiled resources of your project.




回答2:


To retrieve the string, you need to use getString(),

but getString() is a method from Context class. If you want to use this method outside your Activity class, you should get link to your context first and then call:

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



回答3:


R.string.value returns the reference ID number of the resource 'value'. If you look at your R class it will appear as something like this:

public static final class string {
  public static final int value=0x7f040007;
}

I've been experiencing issues with referencing the getString() method. The exact error that Eclipse spits at me is:

The method getString(int) is undefined for the type DatabaseHelper.MainDatabaseHelper

After reading for awhile I've figured out that you must reference your application's context to get access to the getString() method. I was trying to create a private SQLDatabase helper class in a content provider, however, that was not allowing me to reference the getString() method. My solution so far is to do something like this:

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));
    }
}

Notice these two context references:

context.getString()

(getContext()).getString()

I don't know if this is the optimal long-term solution but it seems to work for the moment. Hope this helps.




回答4:


You could use String s = getResources().getString(R.string.value); also.



来源:https://stackoverflow.com/questions/3363245/r-string-value-help-android-notification

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!