开发者

R.string.value Help android notification

开发者 https://www.devze.com 2023-01-09 04:30 出处:网络
whats the deal with CharSequence contentTitle = R.string.value; Error cannot convert from int to CharSequence.开发者_JAVA技巧 Is there a way around this or am i missing something?

whats the deal with

 CharSequence contentTitle = R.string.value;

Error cannot convert from int to CharSequence.开发者_JAVA技巧 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?


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.


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)


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.


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

0

精彩评论

暂无评论...
验证码 换一张
取 消