我尝试修复它,但列表数据没有显示出来。另外,在我的代码中有一些红线。 onPostExecute
它通知构造函数SimpleAdapter(EventsActivity.syncEvent,ArrayList>,int,String [],int [])未定义。如何从以下示例实现AsyncTask?
另一件事,我想要做的就是当我们刷新时显示一个progress
,就像我们刷新facebook上的通知一样,我们将看到刷新数据的动画,我们刷新了数据的最后日期和时间。我那样做?你有什么主意吗?我很新的实施。感谢您的建议。
public class EventsActivity extends ListActivity { EventDataSet sitesList = null; ArrayList> mylist = new ArrayList>(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listplaceholder); } private class syncEvent extends AsyncTask{ @Override protected String doInBackground(String... arg0) { try { /** Handling XML */ SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); /** Send URL to parse XML Tags */ URL sourceUrl = new URL( "http://xxxx.heroku.com/xxxxxxxxxxx.xml"); /** Create handler to handle XML Tags (extends DefaultHandler) */ EventXMLHandler myXMLHandler = new EventXMLHandler(); xr.setContentHandler(myXMLHandler); xr.parse(new InputSource(sourceUrl.openStream())); } catch (Exception e) { } /** Get result from MyXMLHandler SitlesList Object */ sitesList = EventXMLHandler.sitesList; /** Set the result text in textview and add it to layout */ for (int i = 0; i map = new HashMap(); map.put("name", "Name: " + sitesList.getName().get(i)); map.put("createat", "Create-At: " + Convertor.getDateTimeDDMMYY(sitesList.getCreateat().get(i))); mylist.add(map); } return null; } @Override protected void onPostExecute(String result) { ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.eventitem, new String[] { "name", "createat" }, new int[] { R.id.item_title, R.id.item_subtitle }); setListAdapter(adapter); //super.onPostExecute(result); } @Override protected void onProgressUpdate(Integer... values) { // TODO Auto-generated method stub super.onProgressUpdate(values); } } }
非常感谢你的工作 –
很高兴能帮到你。 –