import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.SoapFault;
import org.ksoap2.serialization.MarshalBase64;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends Activity {
EditText editText;
Button button;
// ListView listView;
TextView textView;
String weatherToday;
SoapObject detail; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
addListener();
}
private void initView() {
editText=(EditText) findViewById(R.id.editText1);
textView=(TextView) findViewById(R.id.textView1);
// listView=(ListView) findViewById(R.id.listView1);
button=(Button) findViewById(R.id.button1);
}
private void addListener() {
button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
String trainId=editText.getText().toString().trim();
if(trainId==null || "".equals(trainId)){
trainId="D312";
getTrain(trainId);
textView.setText(weatherToday);
// Toast.makeText(MainActivity.this, "请输入火车班次", Toast.LENGTH_SHORT).show();

}else{
getTrain(trainId);
}
}
});
}
/**
 * 火车班次查询
 * 返回数据为DataSet
 * 
 * @param TrainId
 *            火车班次
 */
public void  getTrain(String trainId){
String NameSpace="http://WebXml.com.cn/"; 
String WSDL="http://webservice.webxml.com.cn/WebServices/TrainTimeWebService.asmx";  
String NameMethod="getDetailInfoByTrainCode";  
String SoapAction="http://WebXml.com.cn/getDetailInfoByTrainCode"; 

SoapObject soapObject=new SoapObject(NameSpace, NameMethod);
soapObject.addProperty("TrainCode",trainId);
soapObject.addProperty("UserId",null);
SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11); 
envelope.bodyOut=soapObject;
envelope.dotNet=true;
envelope.setOutputSoapObject(soapObject);
HttpTransportSE ht=new HttpTransportSE(WSDL);
ht.debug=true;

try {
ht.call(SoapAction, envelope);
if(envelope.getResponse()!=null){//返回数据为DataSet,到了这一句就会出现这样的错误
//SoapFault - faultcode: 'soap:Server' faultstring: '服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。' faultactor: 'null' detail: org.kxml2.kdom.Node@4053cc80
detail=(SoapObject) envelope.getResponse();
Toast.makeText(MainActivity.this, "detail"+detail.toString(), Toast.LENGTH_SHORT).show();
}
} catch (SoapFault e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}ksoap2怎样处理DataSet