我正在尝试解析片段中线程中的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个项目。
有什么建议吗?
答案 0 :(得分:14)
在片段中正确访问资产吗?
使用Activity
(getActivity()
),而不是Application
(getApplicationContext()
),看看是否有帮助。除非您从知道他们所谈论内容的人那里获得非常具体的指示,否则请勿在您的应用中使用getApplicationContext()
。