private
static
final
String NAMESPACE =
"http://WebXml.com.cn/" ;
//
WebService地址
private
static
final
String URL =
"http://www.webxml.com.cn/webservices/weatherwebservice.asmx" ;
private
static
final
String METHOD_NAME =
"getWeatherbyCityName" ;
private
static
final
String SOAP_ACTION =
"http://WebXml.com.cn/getWeatherbyCityName" ;
private
String weatherToday;
private
Button mBtnOk;
private
TextView mTvInfo;
private
EditText mEtCityName;
private
SoapObject detail;
private
Handler handler =
new
Handler() {
@Override
public
void
handleMessage(Message msg) {
switch
(msg.what) {
case
0
:
mTvInfo.setText(weatherToday);
break ;
default :
break ;
}
}
};
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBtnOk
= (Button) this .findViewById(R.id.btn_ok);
mTvInfo
= (TextView) this .findViewById(R.id.tv_info);
mEtCityName
= (EditText) this .findViewById(R.id.et_cityname);
mBtnOk.setOnClickListener( new
OnClickListener() {
@Override
public
void
onClick(View v) {
final
String cityName = mEtCityName.getText().toString().trim();
new
Thread(
new
Runnable() {
@Override
public
void
run() {
getWeather(cityName);
}
}).start();
}
});
}
private
void
getWeather(String cityName) {
try
{
SoapObject
request = new
SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty( "theCityName" ,
cityName);
SoapSerializationEnvelope
envelope = new
SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.bodyOut
= request;
envelope.dotNet
= true ;
envelope.setOutputSoapObject(request);
HttpTransportSE
ht = new
HttpTransportSE(URL);
ht.debug
= true ;
ht.call(SOAP_ACTION,
envelope);
//
SoapObject result = (SoapObject) envelope.bodyIn;
//
detail = (SoapObject)
//
result.getProperty("getWeatherbyCityNameResult");
detail
= (SoapObject) envelope.getResponse();
parseWeather(detail);
return ;
}
catch
(Exception e) {
e.printStackTrace();
}
}
private
void
parseWeather(SoapObject detail) {
String
date = detail.getProperty( 6 ).toString();
System.out.println( "1
: "
+ detail.getProperty(
1 )
+ "\n"
+
"2
: "
+ detail.getProperty(
2 )
+ "\n"
+
"3
: "
+ detail.getProperty(
3 )
+ "\n"
+
"4
: "
+ detail.getProperty(
4 )
+ "\n"
+
"5
: "
+ detail.getProperty(
5 )
+ "\n"
+
"6
: "
+ detail.getProperty(
6 )
+ "\n"
+
"7
: "
+ detail.getProperty(
7 )
+ "\n"
+
"8
: "
+ detail.getProperty(
8 )
+ "\n" );
weatherToday
= "cityName
: "
+ detail.getProperty(
1 );
weatherToday
= weatherToday + "\n今天
: "
+ date.split(
"
" )[ 0 ];
weatherToday
= weatherToday + "\n天气
: "
+ date.split(
"
" )[ 1 ];
weatherToday
= weatherToday + "\n气温
: "
+
detail.getProperty( 5 ).toString();
weatherToday
= weatherToday + "\n风力
: "
+
detail.getProperty( 7 ).toString()
+ "\n" ;
handler.sendEmptyMessage( 0 );
Looper.prepare();
Toast.makeText( this ,
weatherToday, Toast.LENGTH_SHORT).show();
Looper.loop();
}
|