Search code examples
javaandroideclipseandroid-activitygetstring

The method getString(int) is undefined for the type Apps


How do I fix this error. All the three strings on the bottom get the following error "the method getString(int) is undefined for the type Apps". Please help, im such a noob.

package com.actionbarsherlock.sample.fragments;

import android.content.Context;
import android.content.res.Resources;


public final class Apps {
/**
 * Our data, part 1.
 */
public static final String[] TITLES =
{
        "title1",
        "title2",
        "title3"
};

/**
 * Our data, part 2.
 */
public static final String[] DIALOGUE = { 

    getString(R.string.text1),

    getString(R.string.string2),

    getString(R.string.string3)

};
}

Solution

  • First getString is not a static method, you are calling it in a static context this can't be done.

    Second the getString method is part of the Resources class, your class does not extend the Resources class so the method can't be found.

    I think parsing an instance of the Resources class to your Apps class using its constructor would be your the best option.

    Something like this:

    public final class Apps {
    
        public Apps(Resources r){
         DIALOGUE = new String[]{
            r.getString(R.string.text1),
            r.getString(R.string.string2),
            r.getString(R.string.string3)};
        }
    
    
    /**
     * Our data, part 1.
     */
    public static final String[] TITLES =
    {
            "title1",
            "title2",
            "title3"
    };
    
    /**
     * Our data, part 2.
     */
    public static String[] DIALOGUE;
    }