来自没有扩展活动的调用的getstring()

时间:2012-08-27 12:47:34

标签: android class android-activity getstring

我遇到一个简单类的问题,该类包含我想从另一个类调用的信息。例如,这里是包含信息的类Util

public class Util{

public ArrayList<RecetaBean> getRellenas() {
    ArrayList<RecetaBean> MiLista = new ArrayList<RecetaBean>();

    RecetaBean receta1 = new RecetaBean();
    String ingrediente1[] = {         getString(R.string.app_name),getString(R.string.app_name),
    };
    receta1.setIngredientesLista(ingrediente1);

    MiLista.add(receta1);
    MiLista.add(receta1);
    MiLista.add(receta1);


    return MiLista;
}   
  }

然后在另一个课程中,我得到像这样调用的项目:

    Util u = new Util();
    ArrayList<RecetaBean> Recetas = u.getRellenas();

所以,我在类Util中遇到GETSTRING的执行问题,因为我想获得一个不同的字符串(因为语言不同)。退出错误的方法是从Util扩展课程Activity,但Util不是Activity!如果我从Activity延伸,应用程序崩溃。

2 个答案:

答案 0 :(得分:0)

您需要做的就是在方法中定义一个上下文。

并像这样称呼它;

Util u = new Util();
ArrayList<RecetaBean> Recetas = u.getRellenas(this);

你和你的上下文这样的方法:

public ArrayList<RecetaBean> getRellenas(Context con) {
    ArrayList<RecetaBean> MiLista = new ArrayList<RecetaBean>();

    RecetaBean receta1 = new RecetaBean();
    String ingrediente1[] = {         con.getString(R.string.app_name), con.getString(R.string.app_name),
    };
    receta1.setIngredientesLista(ingrediente1);

    MiLista.add(receta1);
    MiLista.add(receta1);
    MiLista.add(receta1);


    return MiLista;
} 

答案 1 :(得分:0)

你考虑过使用字符串数组吗?它会比你想做的简单得多。

就整体用户体验而言,我认为您对语言变更的担忧是不合理的。