- Loading Parsed XML data into simpleListAdapter?
- public class xmlparser extends ListActivity implements OnClickListener {
- static final String XMLsite = "http://www.google.com/ig/api weather=Boston+Massachusetts";
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- @SuppressWarnings("unchecked")
- @Override
- try{
- URL website = new URL(XMLsite);
- //getting xmlreader to parse data
- SAXParserFactory spf = SAXParserFactory.newInstance();
- SAXParser sp = spf.newSAXParser();
- XMLReader xr = sp.getXMLReader();
- HandlingXMLStuff doingWork = new HandlingXMLStuff();
- xr.setContentHandler(doingWork);
- xr.parse(new InputSource(website.openStream()));
- ArrayList<HashMap<String, String>> list =(ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("arraylist");
- String[] from = { "name", "purpose" };
- int[] to = { android.R.id.text1, android.R.id.text2 };
- SimpleAdapter adapter = new SimpleAdapter(this, list,
- android.R.layout.simple_list_item_2, from, to);
- setListAdapter(adapter);
- }catch(Exception e){
- }
- }
- package com.school;
- import java.util.ArrayList;
- import java.util.HashMap;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- public class XMLDataCollected extends Activity{
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- Intent intent = new Intent(this, xmlparser.class);
- ArrayList<HashMap<String, String>> list = buildData();
- intent.putExtra("arraylist", list);
- startActivity(intent);
- }
- int temp = 0;
- String city = null;
- public void setCity(String c){
- city = c;
- }
- public void setTemp(int t){
- temp = t;
- }
- private ArrayList<HashMap<String, String>> buildData() {
- ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
- list.add(putData(city, "temp"));
- list.add(putData("city", "temp"));
- list.add(putData("city", "temp"));
- return list;
- }
- private HashMap<String, String> putData(String name, String purpose) {
- HashMap<String, String> item = new HashMap<String, String>();
- item.put("name", name);
- item.put("purpose", purpose);
- return item;
- }
- }
- public class ActivityOne extends Activity {
- private static final String ADDRESS = "...";
- @Override public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- new FetchDataTask(ADDRESS).execute();
- }
- private class FetchDataTask extends AsyncTask<Void, Void, Void> {
- private URL mWebsite;
- private ArrayList<???> mListActivityContent;
- public FetchDataTask(String address) {
- mWebsite = new URL(address);
- }
- @Override public void doInBackground(Void... voids) {
- //getting xmlreader to parse data
- SAXParserFactory spf = SAXParserFactory.newInstance();
- SAXParser sp = spf.newSAXParser();
- XMLReader xr = sp.getXMLReader();
- HandlingXMLStuff doingWork = new HandlingXMLStuff();
- xr.setContentHandler(doingWork);
- xr.parse(new InputSource(mWebsite.openStream()));
- /*
- * Now, you are going to want other parsing and
- * array building stuff here. Looking at your code,
- * I can't figure out how the XMLDataCollected
- * Activity is used, sorry, so you will have to tweak
- * this to accomodate it.
- */
- }
- @Override public void onPostExecute(Void voids) {
- SimpleAdapter adapter = new SimpleAdapter(ActivityOne.this,
- list, android.R.layout.simple_list_item_2, from, to);
- ActivityOne.this.setListAdatper(adapter);
- }
- }
- }