主细节不会返回整数

时间:2015-06-29 22:07:39

标签: java android string integer master-detail

所以我创建了一个主细节流活动,当然修改它并添加了我自己的代码,但它不会让我最后返回一个整数。这是代码

public class DummyContent {

public static List<DummyItem> ITEMS = new ArrayList<DummyItem>();

public static Map<String, DummyItem> ITEM_MAP = new HashMap<String,    DummyItem>();

static {     
    addItem(new DummyItem("1",1, R.string.resturant,null,0));
    addItem(new DummyItem("2",2,R.string.fork,null,1));
    addItem(new DummyItem("3",3,R.string.plates,null,2));
}

private static void addItem(DummyItem item) {
    ITEMS.add(item);
    ITEM_MAP.put(item.Id, item);
}

public static class DummyItem {

    public String Id;
    public int name;
    public int content;
    public Button sounnd;
    public int Idd;

    public DummyItem(String Id,int name, int content,Button sounnd,int Idd) {
        this.Id = Id;
        this.name = name;
        this.content = content;
        this.sounnd = sounnd;
        this.Idd = Idd;
    }

    String change = Integer.toString(content);

    @Override
    public String toString() {
        return change;
    }

}
}

实际发生的是它在运行时返回零,而不是字符串资源。我也尝试过回归&#34;&#34; +内容,但也没有工作。

1 个答案:

答案 0 :(得分:0)

看起来问题是您在构造函数之外声明String change = Integer.toString(content);,这意味着它会在content被分配之前执行。

将其移至构造函数中:

 public DummyItem(String Id,int name, int content,Button sounnd,int Idd) {
    this.Id = Id;
    this.name = name;
    this.content = content;
    this.sounnd = sounnd;
    this.Idd = Idd;

    this.change = Integer.toString(content);
 }

应该解决部分问题。第二部分是将资源ID解析为相应的字符串。为此,您还需要一个上下文:

public DummyItem(Context context, String Id,int name, int content,Button sounnd,int Idd) {
  ...
  this.change = context.getString(context);
}

或者,您可以添加另一个类似于toString()的方法,该方法接受Context参数并使用它来解析字符串:

public String getContentString(Context context) {
  return context.getString(content);
}