Java 在Eclipse生成的列表片段中使用XML资源

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

我使用Eclipse(new->Android Object->new List Fragment)生成了一个新的列表片段,它创建了
ItemFragment
dummy.DummyContent

关于这一点,我有两个问题:

  • 更一般的问题。。。DummyContent是如何实例化的?ArrayAdapter的声明是否正在执行此工作?因为我在代码中没有看到任何新的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是如何实例化的?是 做这项工作的ArrayaAdapter的声明?我看不出来 代码中的任何地方都有一个新的DummyContent

    它没有实例化,它的所有字段和方法都是
    静态的
    ,这意味着它们可以在不需要该类实例的情况下被引用。有关更多信息,请查看任何关于静态类/字段/方法的文档/教程

    在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静态
    }