对于Apps类型,方法getString(int)未定义

idr*_*id8 6 java eclipse android getstring android-activity

我该如何解决这个错误.底部的所有三个字符串都会出现以下错误"对于Apps类型,方法getString(int)未定义".请帮忙,我是这样的菜鸟.

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)

};
}
Run Code Online (Sandbox Code Playgroud)

Moh*_*eem 30

传递一个实例 Context context

然后使用

context.getResources().getString(R.string.text1)
Run Code Online (Sandbox Code Playgroud)

context是属于您当前的活动.


Rol*_*f ツ 5

首先getString不是静态方法,而是在静态上下文中调用它,这是无法完成的.

其次,该getString方法是Resources类的一部分,您的类不扩展Resources类,因此无法找到该方法.

我认为使用其构造函数将Resources类的实例解析为您的Apps类将是您的最佳选择.

像这样的东西:

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;
}
Run Code Online (Sandbox Code Playgroud)