我试图从服务器获取菜单项的json列表,对其进行解析,并将其显示在片段视图中。完整的代码在这里:http://pastebin.com/8UEgcyfa
在添加用于获取json和解析的代码之前,应用程序仅显示了来自字符串资源的硬编码菜单项列表,如下所示:
String[] adobe_products = getResources().getStringArray(R.array.adobe_products);
// Binding resources Array to ListAdapter
this.setListAdapter(new ArrayAdapter<String>(getActivity(), R.layout.fragment_viewdishes, R.id.label, adobe_products));
这是正确的工作。在尝试实际打印解析后接收到的菜单项时,我在onPostExecute方法中执行了此操作(请参见完整代码),其中menuNameArray(我认为)正确保存了我实际上需要在ListView上显示的菜单项数组:
this.setListAdapter(new ArrayAdapter<String>(getActivity(), R.layout.fragment_viewdishes, R.id.label, adobe_products));
IntelliJ IDEA此时会引发错误:
Cannot resolve method setListAdapter
。我以为实际上需要调用它的ViewDishes.setListAdapter,但是它引发了另一个错误:Non static method cannot be referenced from a static content
请问关于我如何克服这个错误的任何指示?
最佳答案
更换
this.setListAdapter(new ArrayAdapter<String>(getActivity(), R.layout.fragment_viewdishes, R.id.label, adobe_products));
通过
ViewDishes.this.setListAdapter(new ArrayAdapter<String>(getActivity(), R.layout.fragment_viewdishes, R.id.label, adobe_products));
setListAdapter
是ListFragment
而不是Asynctask
的方法,因此您需要使用ViewDishes.this
代替this
中的onPostExecute