Java 在Eclipse生成的列表片段中使用XML资源
我使用Eclipse(new->Android Object->new List Fragment)生成了一个新的列表片段,它创建了Java 在Eclipse生成的列表片段中使用XML资源,java,android,arraylist,Java,Android,Arraylist,我使用Eclipse(new->Android Object->new List Fragment)生成了一个新的列表片段,它创建了ItemFragment和dummy.DummyContent类 关于这一点,我有两个问题: 更一般的问题。。。DummyContent是如何实例化的?ArrayAdapter的声明是否正在执行此工作?因为我在代码中没有看到任何新的DummyContent。见下文: @Override public void onCreate(Bundle savedInstanc
ItemFragment
和dummy.DummyContent
类
关于这一点,我有两个问题:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// TODO: Change Adapter to display your content
mAdapter = new ArrayAdapter<DummyContent.DummyItem>(getActivity(),
android.R.layout.simple_list_item_1, android.R.id.text1,
DummyContent.ITEMS);
}
静态的
,这意味着它们可以在不需要该类实例的情况下被引用。有关更多信息,请查看任何关于静态类/字段/方法的文档/教程
在DummyContent类中,我想填充
具有从资源XML文件中提取的数据的ArrayList项,
然而,由于我不了解这个DummyContent类的上下文,
我无法访问R.xml。*是否有方法将上下文传递给该文件
不知怎么上课
public class DummyContent {
/**
* An array of sample (dummy) items.
*/
public static List<DummyItem> ITEMS = new ArrayList<DummyItem>();
/**
* A map of sample (dummy) items, by ID.
*/
public static Map<String, DummyItem> ITEM_MAP = new HashMap<String, DummyItem>();
static {
// Add 3 sample items.
addItem(new DummyItem("1", "Item 1"));
addItem(new DummyItem("2", "Item 2"));
addItem(new DummyItem("3", "Item 3"));
}
private static void addItem(DummyItem item) {
ITEMS.add(item);
ITEM_MAP.put(item.id, item);
}
/**
* A dummy item representing a piece of content.
*/
public static class DummyItem {
public String id;
public String content;
public DummyItem(String id, String content) {
this.id = id;
this.content = content;
}
@Override
public String toString() {
return content;
}
}
}
一个选项是保持当前的DummyContent
类,并在片段级别进行xml解析,只需将解析的数据传递给DummyContent
类
要将上下文
传递给您的DummyContent
类,请为其创建一个构造函数,如下所示:
public class DummyContent {
private Context mContext;
public DummyContent(Context context) {
mContext = context;
}
//...
然后,您将能够执行以下操作:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DummyContent dc = new DummyContent(getActivity());
// do the parsing in the DummyContent: dc.doParsing()
mAdapter = new ArrayAdapter<DummyContent.DummyItem>(getActivity(),
android.R.layout.simple_list_item_1, android.R.id.text1,
DummyContent.ITEMS); // assuming that you keep the ITEMS ArrayList static
}
@覆盖
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
DummyContent dc=新的DummyContent(getActivity());
//在DummyContent:dc.doParsing()中进行解析
mAdapter=newarrayadapter(getActivity(),
android.R.layout.simple_list_item_1,android.R.id.text1,
dummcontent.ITEMS);//假设您保持ITEMS ArrayList静态
}