• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            life02

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              197 隨筆 :: 3 文章 :: 37 評論 :: 0 Trackbacks
            http://www.oschina.net/code/snippet_149945_6389

            [代碼] [Java]代碼
            001    public class WeatherActivity extends Activity {
            002        private TextView txCity;
            003        private Button btnSearch;
            004        private Handler weatherhandler;
            005        private Dialog progressDialog;
            006        private Timer timer;
            007        /** Called when the activity is first created. */
            008        @Override
            009        public void onCreate(Bundle savedInstanceState) {
            010            super.onCreate(savedInstanceState);
            011            setContentView(R.layout.main);
            012            timer = new Timer();
            013            txCity = (TextView)findViewById(R.id.txCity);
            014            btnSearch = (Button)findViewById(R.id.btnSearch);
            015            progressDialog = new AlertDialog.Builder(this)
            016            .setTitle("讀取數據中")
            017            .setMessage("正在加載數據,請稍等")
            018            .create();
            019             
            020            weatherhandler = new Handler(){
            021                public void handleMessage(Message msg){
            022                    final String cityName = txCity.getText().toString().trim();
            023                    searchWeather(cityName);
            024                    progressDialog.hide();
            025                }
            026            };
            027             
            028            btnSearch.setOnClickListener(new OnClickListener() {
            029                 
            030                @Override
            031                public void onClick(View v) {
            032                    progressDialog.show();
            033                    timer.schedule(new TimerTask() {
            034                        @Override
            035                        public void run() {
            036                            Message msg = new Message();
            037                            msg.setTarget(weatherhandler);
            038                            msg.sendToTarget();
            039                        }
            040                    },100);
            041                }
            042            });
            043        }
            044        private void searchWeather(String city){
            045            SAXParserFactory spf = SAXParserFactory.newInstance();
            046            try {
            047                SAXParser sp = spf.newSAXParser();
            048                XMLReader reader = sp.getXMLReader();
            049                XmlHandler handler = new XmlHandler();
            050                reader.setContentHandler(handler);
            051                URL url = new URL("http://www.google.com/ig/api?hl=zh-cn&weather="+URLEncoder.encode(city));
            052                InputStream is = url.openStream();
            053                InputStreamReader isr = new InputStreamReader(is, "GBK");
            054                InputSource source = new InputSource(isr);
            055                reader.parse(source);
            056                List<Weather>weatherList = handler.getWeatherList();
            057                TableLayout table = (TableLayout)findViewById(R.id.table);
            058                table.removeAllViews();
            059                for(Weather weather:weatherList){
            060                    TableRow row = new TableRow(this);
            061                    row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
            062                    row.setGravity(Gravity.CENTER_VERTICAL);
            063                    ImageView img = new ImageView(this);
            064                    img.setImageDrawable(loadImage(weather.getImageUrl()));
            065                    img.setMinimumHeight(80);
            066                    row.addView(img);
            067                    TextView day = new TextView(this);
            068                    day.setText(weather.getDay());
            069                    day.setGravity(Gravity.CENTER_HORIZONTAL);
            070                    row.addView(day);
            071                    TextView temp = new TextView(this);
            072                    temp.setText(weather.getLowTemp()+"℃-"+weather.getHighTemp()+"");
            073                    temp.setGravity(Gravity.CENTER_HORIZONTAL);
            074                    row.addView(temp);
            075                    TextView condition = new TextView(this);
            076                    condition.setText(weather.getCondition());
            077                    condition.setGravity(Gravity.CENTER_HORIZONTAL);
            078                    row.addView(condition);
            079                    table.addView(row);
            080                }
            081            } catch (Exception e) {
            082                e.printStackTrace();
            083                new AlertDialog.Builder(this)
            084                    .setTitle("解析錯誤")
            085                    .setMessage("獲取天氣數據失敗,請稍候再試。")
            086                    .setNegativeButton("確定"null)
            087                    .show();       
            088            }
            089             
            090        }
            091        private Drawable loadImage(String imageUrl) {
            092            try {
            093                return Drawable.createFromStream((InputStream) new URL("http://www.google.com/"+imageUrl).getContent(), "test");
            094            } catch (MalformedURLException e) {
            095                e.printStackTrace();
            096            } catch (IOException e) {
            097                e.printStackTrace();
            098            }
            099            return null;
            100        }
            101    }
            posted on 2011-12-18 21:19 life02 閱讀(2239) 評論(0)  編輯 收藏 引用 所屬分類: Android開發
            久久精品天天中文字幕人妻| 久久久久久久97| 精品国产乱码久久久久久郑州公司 | 国产精品久久久久乳精品爆| 狠狠综合久久综合88亚洲| 欧美麻豆久久久久久中文| 久久久久免费视频| 久久久久人妻一区精品| 久久无码人妻精品一区二区三区| 久久久久久无码国产精品中文字幕| 国产成人久久久精品二区三区| 色综合久久中文色婷婷| 办公室久久精品| 久久精品免费大片国产大片| 久久青青国产| 色综合久久久久久久久五月| 久久久久亚洲Av无码专| 久久久久免费精品国产| 免费一级欧美大片久久网| 中文字幕久久亚洲一区| 浪潮AV色综合久久天堂| 久久综合综合久久97色| 久久se这里只有精品| 久久精品国产亚洲AV香蕉| 久久av无码专区亚洲av桃花岛| 国产精品久久久久久一区二区三区| 久久美女人爽女人爽| 少妇久久久久久被弄到高潮| 无码日韩人妻精品久久蜜桃| 久久亚洲国产中v天仙www| 欧美成人免费观看久久| 国产成人精品免费久久久久| 欧美日韩中文字幕久久久不卡 | 久久精品国产精品青草app| 久久精品国产欧美日韩| 久久婷婷国产综合精品| 欧美色综合久久久久久| 国产精品美女久久久久网| 久久综合久久美利坚合众国| 国产激情久久久久影院| 国内精品九九久久久精品|