【问题标题】:Android: access to R.string from Model class [duplicate]Android:从模型类访问 R.string [重复]
【发布时间】:2015-08-28 12:51:32
【问题描述】:

我在 model 文件夹中有这个 POJO 模型类。

package com.example.test.model;

public class ModelCampaign {

    private String mNameCampaign;
    private int mIdCampaign;
    private String mTypeCampaign;
    private String mFormattedTypeCampaign;

    public ModelCampaign() {
    }

    public ModelCampaign(String nameCampaign, int idCampaign, String typeCampaign) {
        this.mNameCampaign = mNameCampaign;
        this.mIdCampaign = mIdCampaign;
        this.mTypeCampaign = mTypeCampaign;
    }

    // some stuff

    private String setFormattedTypeCampaign(){

        switch (this.mTypeCampaign){
            case "london" : this.mFormattedTypeCampaign = getString(R.string.london);
                break;
        }

    }

}

我需要访问 strings.xml 文件。当然,我没有上下文。我如何访问它们?

非常感谢!

【问题讨论】:

    标签: java android


    【解决方案1】:

    如果您想从模型类访问资源,则将Resources 对象传递给构造函数。你的构造函数应该是这样的

    public ModelCampaign(Resources res,String nameCampaign, int idCampaign, String typeCampaign){
            this.res = res;
            this.mNameCampaign = mNameCampaign;
            this.mIdCampaign = mIdCampaign;
            this.mTypeCampaign = mTypeCampaign;
        }
    

    你可以通过传递 res id 得到这样的字符串

    public String getString(int key){
     return res.getString(key);
    }
    

    并像这样初始化对象

    ModelCampaign mc = new ModelCampaign(getResources(),......);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-11
      • 2015-06-27
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      • 2014-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多