在片段中获取资产

时间:2011-06-07 07:36:21

标签: android xml android-fragments

我正在尝试解析片段中线程中的xml文件。

我的代码的部分片段是:

public void onCreate(Bundle savedInstanceState)
    {
  mAdapter = new ListItemNearbyStoresAdapter(getActivity().getApplicationContext(), mStoresByKey);

         setListAdapter(mAdapter);

         // Load the list of stores from hard coded xml
         loadStoresByThread(getActivity().getApplicationContext());

    }

    private void loadStoresByThread(final Context ctx)
        {
            Thread t = new Thread()
            {

                public void run()
                {

                    try
                    {


                        Log.d(TAG, "In the thread");
                        String[] files = ctx.getResources().getStringArray(R.array.storefiles);
                       // String[] files={"s1.xml"};



                        for (int i = 0; i < files.length; i++)
                        {

                            try
                            {
                                InputStream stream = getActivity().getAssets().open(files[i]);

                                 NearbyItemDomFeedParser parser = new NearbyItemDomFeedParser(stream);
                                ArrayList<Store> stores = parser.parse();
                                Log.e("no of fioles read","asd :"+stores.size());
                                mStores.addAll(stores);
                                cache.setItems(mStores);
                            }
                            catch (Exception e)
                            {
                                Log.d(TAG, "Exception caught" + e);
                            }
                        }
}
}

请注意,整个类扩展了一个列表片段。

在片段中正确访问资产吗?

原因我无法读取文件。

没有例外,所以我无法弄清楚确切的错误。

但最后在使用构建器解析后,我得到了0个项目。

有什么建议吗?

1 个答案:

答案 0 :(得分:14)

  

在片段中正确访问资产吗?

使用ActivitygetActivity()),而不是ApplicationgetApplicationContext()),看看是否有帮助。除非您从知道他们所谈论内容的人那里获得非常具体的指示,否则请勿在您的应用中使用getApplicationContext()