簡體   English   中英

主細節不會返回整數

[英]Master detail won't return integer

所以我創建了一個主細節流活動,當然對其進行了修改並添加了我自己的代碼,但是它不會讓我最后返回一個整數。 這是代碼

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;
    }

}
}

實際發生的是在運行時返回零,而不是字符串資源。 我也嘗試做返回“” +的內容,但是沒做好。

看來問題在於您在聲明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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM