2012-05-23 27 views
0

我去用法語顯示天氣信息,但是我不能,這段代碼和這個baseURL http://www.google.com/ig/api?weather=city,state一起工作,但是當改成法文的時候,這是行不通的,並且破例!google api android

public class WeatherXMLParsing extends GDActivity{ 
static final String baseURL="http://www.google.com/ig/api?weather=city,state&hl=fr";  
EditText city,state; 
TextView tv1,tv2,tv3,tv4,tv5; 
ImageView iv; 
String c,s; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setActionBarContentView(R.layout.weather_layout_base); 

    tv1=(TextView) findViewById(R.id.weath_info); 
    tv2=(TextView) findViewById(R.id.weath_temp_x); 
    tv3=(TextView) findViewById(R.id.weath_wind_x); 
    tv4=(TextView) findViewById(R.id.weath_humidity_x); 
    tv5=(TextView) findViewById(R.id.weath_condition_x); 
    iv=(ImageView) findViewById(R.id.weath_img); 

    DataBind(); 
} 

public void DataBind() { 

    StringBuilder URL=new StringBuilder(baseURL); 
    String FullURL=URL.toString(); 
    try { 

     URL Website = new URL(FullURL); 
     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())); 

     String information=doingWork.getInformation(); 
     String temp=doingWork.getTempInformation(); 
     String wind=doingWork.getWindInformation(); 
     String humudity=doingWork.getHumudityInformation(); 
     String condition=doingWork.getConditionInformation(); 

     Log.d("weath_info", information); 
     Log.d("weath_info", temp); 
     Log.d("weath_temp", wind); 
     Log.d("weath_wind", humudity); 
     Log.d("weath_humud", condition); 

     tv1.setText(information); 
     tv2.setText(temp+"°C"); 
     tv3.setText(wind); 
     tv4.setText(humudity); 
     tv5.setText(condition); 

        if(condition.equals("Cloudy")) 
        { 
         iv.setImageResource(R.drawable.cloudy); 
        } 
        else if(condition.equals("Partly Cloudy")) 
        { 
         iv.setImageResource(R.drawable.partly_cloudy); 
        } 
        else if(condition.equals("Rainy")) 
        { 
         iv.setImageResource(R.drawable.rainy); 
        } 
        else if(condition.equals("Clear")) 
        { 
         iv.setImageResource(R.drawable.sunny); 
        } 
        else{ 
         iv.setImageResource(R.drawable.mostly_sunny); 
        } 
    } catch (Exception e) { 
tv1.setText("Erreur internet"); 
tv2.setVisibility(View.INVISIBLE); 
tv3.setVisibility(View.INVISIBLE); 


    } 
} 
} 





public class HandlingXMLStuff extends DefaultHandler { 
XMLDataCollected info=new XMLDataCollected(); 
public String getTempInformation(){ 

    return info.tempToString(); 
} 
public String getConditionInformation(){ 

    return info.conditionToString(); 
} 
public String getWindInformation(){ 

    return info.windToString(); 
} 
public String getHumudityInformation(){ 

    return info.humudityToString(); 
} 
public String getInformation(){ 

    return info.informationToString(); 
} 

@Override 
public void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException { 

    if (localName.equals("city")) 
    { 
     String city=attributes.getValue("data");  
     info.setCity(city); 
    } 

    else if (localName.equals("temp_c")) 
    { 
     String t=attributes.getValue("data"); 
     int temp=Integer.parseInt(t); 
     info.setTemp(temp); 
    } 

    else if (localName.equals("humidity")) 
    { 
     String humidity=attributes.getValue("data"); 
     info.setHumidity(humidity); 
    } 

    else if (localName.equals("wind_condition")) 
    { 
     String wind=attributes.getValue("data"); 
     info.setWind(wind); 
    } 

    else if (localName.equals("forecast_date")) 
    { 
     String date=attributes.getValue("data"); 
     info.setDate(date); 
    } 
    else if (localName.equals("condition")) 
    { 
     String condition=attributes.getValue("data"); 
     info.setCondition(condition); 
    } 
} 



} 










public class XMLDataCollected { 

String city=null,humidity=null,wind=null,date=null,condition=null; 
int temp=0; 

public void setCity(String c) 
{ 
    city=c; } 
public void setCondition(String cnd) 
{ 
    condition=cnd; } 
public void setTemp(int t) 
{ 
    temp=t; } 
public void setHumidity(String h) 
{ 
    humidity=h; } 
public void setWind(String w) 
{ 
    wind=w; } 
public void setDate(String d) 
{ 
    date=d; } 
public String cityToString() 
{ 
    return city;  
} 

public String conditionToString() 
{ 
    return condition; 
} 
public String informationToString() 
{ 
    return "Weather in "+city+" for "+date; 
} 
public String tempToString() 
{ 
    return temp+""; 
} 
public String humudityToString() 
{ 
    return humidity;  
} 
public String windToString() 
{ 
    return wind;  
} 
} 

這裏是堆棧跟蹤:

05-23 03:20:04.376: W/System.err(6355): java.net.UnknownHostException: Host is unresolved: www.google.com:80 
05-23 03:20:04.386: W/System.err(6355):  at java.net.Socket.connect(Socket.java:1037) 
05-23 03:20:04.396: W/System.err(6355):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:62) 
05-23 03:20:04.396: W/System.err(6355):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionManager$ConnectionPool.getHttpConnection(HttpConnectionManager.java:145) 
05-23 03:20:04.406: W/System.err(6355):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionManager.getConnection(HttpConnectionManager.java:67) 
05-23 03:20:04.406: W/System.err(6355):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getHTTPConnection(HttpURLConnection.java:821) 
05-23 03:20:04.416: W/System.err(6355):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:807) 
05-23 03:20:04.416: W/System.err(6355):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1051) 
05-23 03:20:04.416: W/System.err(6355):  at java.net.URL.openStream(URL.java:653) 
05-23 03:20:04.436: W/System.err(6355):  at com.pfe.meteo.WeatherXMLParsing.DataBind(WeatherXMLParsing.java:55) 
05-23 03:20:04.446: W/System.err(6355):  at com.pfe.meteo.WeatherXMLParsing.onCreate(WeatherXMLParsing.java:40) 
05-23 03:20:04.446: W/System.err(6355):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
05-23 03:20:04.456: W/System.err(6355):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
05-23 03:20:04.456: W/System.err(6355):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
05-23 03:20:04.466: W/System.err(6355):  at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
05-23 03:20:04.466: W/System.err(6355):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
05-23 03:20:04.466: W/System.err(6355):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-23 03:20:04.476: W/System.err(6355):  at android.os.Looper.loop(Looper.java:123) 
05-23 03:20:04.476: W/System.err(6355):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
05-23 03:20:04.488: W/System.err(6355):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-23 03:20:04.488: W/System.err(6355):  at java.lang.reflect.Method.invoke(Method.java:521) 
05-23 03:20:04.488: W/System.err(6355):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
05-23 03:20:04.496: W/System.err(6355):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
05-23 03:20:04.496: W/System.err(6355):  at dalvik.system.NativeStart.main(Native Method) 

回答

0

檢查您的網絡連接和DNS服務器 - 貌似問題是有

+0

我使用的是代理,我刪除它,它工作得很好,但我在使用「http://www.google.com/ig/api?weather=city,state」時出現問題,但使用「」http://www.google.com/ig/api?weather=city,狀態&hl = fr「我還沒有顯示,甚至是例外。我不知道爲什麼,我需要用法語顯示wetaher,你能幫我嗎? –

+0

嘗試從服務器的Log.v原始響應 - 也許有錯誤 – skayred