各位大神好,我是自学安卓,我按照回答里二楼的网址里的方法,可惜出了错误,我不知道该怎么改。
主函数如下:
public class MainActivity extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
OnClickListener listener = new OnClickListener() {
public void onClick(View v) {
try {
DBUtil dbUtil=new DBUtil();
dbUtil.IsUserNameExist();
} catch (Exception e) {}
}};
Button button = (Button) findViewById(R.id.query_btn);
button.setOnClickListener(listener);
}
}
然后调用DBUtil这个类:
public class DBUtil {
private ArrayList<String> arrayList = new ArrayList<String>();
private ArrayList<String> brrayList = new ArrayList<String>();
private GetWebService gws = new GetWebService();
public boolean IsUserNameExist() {
arrayList.clear();
brrayList.clear();
return gws.GetWebService1("GetCountry", arrayList, brrayList);
}
}
然后就是webservice
public class GetWebService {
private String result;
//Except method "getAllInfo" and "getAllTestData"
public boolean GetWebService1(String methodName, ArrayList<String> Parameters, ArrayList<String> ParValues) {
//命名空间
String nameSpace = "http://www.shijinet.com.cn/kunlun/kws/1.1/";
//EndPoint
String endPoint = "http://http://10.0.2.2:8082/kws/InformationService.asmx";
//SOAP Action
final String soapAction = nameSpace + methodName;
final HttpTransportSE transport = new HttpTransportSE(endPoint);
transport.debug = true;
//指定WebService的命名空间和调用的方法名
SoapObject rpc = new SoapObject(nameSpace, methodName);
for (int i = 0; i < Parameters.size(); i++) {
rpc.addProperty(Parameters.get(i), ParValues.get(i));
}
//生成调用WebService方法的SOAP请求信息,并指定SOAP的版本(10、11或者12)
final SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = transport;
//设置是否调用的是.Net开发的WebService
envelope.dotNet = true;
envelope.setOutputSoapObject(rpc);
//android 4.0以后的版本在主程中不允许联网
Thread thread;
thread = new Thread() {
public void run() {
try {
//调用WebService
transport.call(soapAction, envelope);
SoapObject object = (SoapObject) envelope.bodyIn;//获取返回值,并封装成SoapObject
result = object.getProperty(0).toString();
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
}
}
};
thread.start();
try {
thread.join();//等待该子程结束
} catch (InterruptedException e) {
e.printStackTrace();
}
if (result.equals("true")) {
return true;
} else {
return false;
}
}
}
出错点就在走到webservice方法里面的
//android 4.0以后的版本在主程中不允许联网
Thread thread;
thread = new Thread()
这个地方的时候,没有进去里面,直接跳到了
thread.start();
这个地方
实在搞不出来了,特来求教,谢谢各位