package com.cityweather; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList;
import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import com.cityweather.OZWFGoogleWeatherAPIData; import com.cityweather.OZWFXMLHandler; import android.app.Activity; import android.app.AlertDialog; import android.app.ListActivity; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class MyLocationActivity extends ListActivity implements OnClickListener { TextView selection; EditText et; AutoCompleteTextView at; String data[]={}; public static int state = 0; public static String city = ""; static final String[] COUNTRIES = new String[] { "Harare","Lusaka","Kampala","Tunis","Mbabane","Paramaribo","Khartoum","Pretoria","Mogadishu","Freetown","Victoria","Dakar","Kigali","Abuja","Niamey","Wimdhoek","Maputo","Rabat","Port Louis","Bamako","Lilongwe","Antananarivo","Tripoli","Monrovia","Maseru","Tarawa","Nairobi","Bissau","Conakry","Accra","Banjul","Libreville","Asmara","Malabo","Cairo","Djibouti","Brazzaville","Moroni","Bangul","Praia","Yaounde","Bujumbura","Ouagadougou","Garborone","Porto-Novo","Algiers","Hanoi","Tashkent","Ashkhabad","Bangkok","Dushanbe","Taipei","Colombo","Singapore","Manila","Islamabad","Kathmandu","Yangon","Ulaanbaatar","Male","Kuala Lumpur","Vientiane","Bishkek","Seoul","Pyongyang","Astana","Tokyo","Jakarta","New Delhi","Beijing","Phnom Penh","Manama","Baku","Yerevan","Kabul","Kamphaeng Phet","Chiang Rai","Chiang Mai","Tak","Nan" ,"Phichit","Phitsanulok","Phetchabun","Phrae","Mae Hong Son","Lampang","Sukhothai","Uttaradit" ,"Phayao","Chanthaburi","Chon Buri","Chai Nat","Trat","Nakhon Nayok","Nakhon Pathom","Nonthaburi" ,"Pathum Thani","Prachuap Khiri Khan","Prachin Buri","Phetchaburi","Rayong","Ratchaburi","Lop Buri" ,"Samut Prakan","Samut Songkhram","Samut Sakhon","Saraburi","Sing Buri","Suphan Buri" ,"Ang Thong","Sa Kaeo","Kalasin","Chaiyaphum","Yasothon","Maha Sarakham","Loei","Si Sa Ket" ,"Nong Khai","Udon Thani","Ubon Ratchathani","Mukdahan","Amnat Charoen","Nong Bua Lam Phu" ,"Krabi","Trang","Nakhon Si Thammarat","Narathiwat","Pattani","Phuket","Phatthalung" ,"Yala","Songkhla","Satun","Surat Thani" ,"" }; public void onCreate(Bundle icicle) { super.onCreate(icicle); //WriteSettings(this, "Skopje"); data = ReadSettings(this).trim().split(","); data[data.length-1]=data[data.length-1].trim(); //Log.v("datodeka", data[30].toString()); setContentView(R.layout.lview); setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data)); selection = (TextView) findViewById(R.id.selection); //selection.setText(ReadSettings(this)); // button // Button del = (Button)findViewById(R.id.btDel); // del.setOnClickListener(new View.OnClickListener() { // // @Override // public void onClick(View v) { // // TODO Auto-generated method stub // Intent intent = new Intent(MyLocationActivity.this,PEdit.class); // startActivity(intent); // } // }); Button btnAdd = (Button) findViewById(R.id.btnAdd); btnAdd.setOnClickListener(this); } public class MyCustomAdapter extends BaseAdapter { private ArrayList<String> mData = new ArrayList<String>(); private LayoutInflater mInflater; public MyCustomAdapter(Activity context,String c) { mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public void addItem(final String item) { mData.add(item); notifyDataSetChanged(); } @Override public int getCount() { // TODO Auto-generated method stub return mData.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return mData.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder holder = null; if (convertView == null) { convertView = mInflater.inflate(R.layout.item, null); holder = new ViewHolder(); holder.textView = (TextView)convertView.findViewById(R.id.text); convertView.setTag(holder); } else { holder = (ViewHolder)convertView.getTag(); } holder.textView.setText(mData.get(position)); Log.i("test","test"+ mData); return convertView; } } public static class ViewHolder { public TextView textView; } public void onListItemClick(ListView parent, View v, int position, long id) { //selection.setText(data[position]); MyLocationActivity.state=1; Log.v("mylocation",Integer.toString( state)); city=data[position]; // AndroidWeatherTab.updateWeather(data[position]); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); // AndroidWeatherTab.switchTab("now"); setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data)); } public void WriteSettings(Context context, String data) { FileOutputStream fOut = null; OutputStreamWriter osw = null; try { fOut = openFileOutput("loc1.txt", MODE_APPEND); osw = new OutputStreamWriter(fOut); osw.write( data+","); osw.flush(); Toast.makeText(context, "Settings saved", Toast.LENGTH_LONG) .show(); } catch (Exception e) { e.printStackTrace(); Toast.makeText(context, "Settings not saved", Toast.LENGTH_LONG) .show(); } finally { try { osw.close(); fOut.close(); } catch (IOException e) { e.printStackTrace(); } } } // Read settings public String ReadSettings(Context context) { FileInputStream fIn = null; InputStreamReader isr = null; char[] inputBuffer = new char[255]; String data = null; try { fIn = openFileInput("loc1.txt"); if(fIn==null) { return " ,"; } isr = new InputStreamReader(fIn); isr.read(inputBuffer); data = new String(inputBuffer); Toast.makeText(context, "Settings read", Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); Toast.makeText(context, "Settings not read", Toast.LENGTH_SHORT) .show(); } finally { try { if(fIn==null) { return ""; } isr.close(); fIn.close(); } catch (IOException e) { e.printStackTrace(); } } return data; } @Override public void onClick(View v) { // TODO Auto-generated method stub at = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES); at.setAdapter(adapter); // et = (EditText)findViewById(R.id.et1); URL url; try { /* Get what user typed to the EditText. */ String town = at.getText().toString(); String queryString = "http://www.google.com/ig/api?weather=" + town; /* Replace blanks with HTML-Equivalent. */ url = new URL(queryString.replace(" ", "%20")); /* Get a SAXParser from the SAXPArserFactory. */ SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); //get the XMLReader of the SAXParser XMLReader xr = sp.getXMLReader(); OZWFXMLHandler xmlHandler = new OZWFXMLHandler(); xr.setContentHandler(xmlHandler); //parse the xml-data from URL xr.parse(new InputSource(url.openStream())); //show data OZWFGoogleWeatherAPIData aa = xmlHandler.getData(); { // et = (EditText)findViewById(R.id.et1); // String cityParamString = et.getText().toString(); WriteSettings(MyLocationActivity.this, aa.getCity()+" "+aa.getCurrentConditionData().getTemp_c()); data = ReadSettings(MyLocationActivity.this).split(","); data[data.length-1]=data[data.length-1].trim(); onResume(); } }catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en