[英]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.