我正在尝试使用一个小型数据库的web服务,该数据库由少数字段组成,即名称,年龄,性别,城市。现在我已经编写了一个基于名称返回true或false的web服务并返回到我的活动。< / p>
现在我需要在各种文本视图中输出(即......我需要显示该用户的年龄,性别和城市的其他字段)。
这就是我要做的事情:
<WebMethod> _
Public Function GetUserDetails(ByVal code As String) As String
Dim conn As SqlConnection
conn = ConnectionManager.GetConnection()
conn.Open()
Dim DsCheckUser As New DataSet()
Dim newCmd As SqlCommand = conn.CreateCommand()
newCmd.CommandType = CommandType.Text
newCmd.CommandText = "Select age, sex from userdetails where username='" & username & "' "
Dim sqlda As New SqlDataAdapter(newCmd)
sqlda.Fill(DsCheckUser)
'Getting Back result from your DB.
If DsCheckUser.Tables(0).Rows.Count > 0 Then
Return True
Else
Return False
End If
conn.Close()
'Return address
End Function
和OnPostExecute:
protected void onPostExecute(Void result) {
//Error status is false
if(!errored){
//Based on Boolean value returned from WebService
if(codeStatus){
//Here I need to set the userdetails based on username and display them in each individual textview.
}else{
//Set Error message
Toast.makeText(getBaseContext(), "Username not found", Toast.LENGTH_SHORT).show();
}
//Error status is true
}else{
Toast.makeText(getBaseContext(), "Error occured in invoking webservice", Toast.LENGTH_SHORT).show();
}
//Re-initialize Error Status to False
errored = false;
}
因此,基于codestatus是否属实,我需要从我的网络方法中获取剩余的年龄,性别和城市字段,并将其显示在我的文本视图中。
这是我的doInBackground:
@Override
protected Void doInBackground(String... params) {
//Call Web Method
codeStatus = ScanWebService.invokeScanWS(editTextCode,"GetBarcodeDetails");
return null;
}
答案 0 :(得分:-1)
编辑2:只需将文本值设置为TextView。
你有没有遇到任何问题,如果是这样的帖子日志猫?
答案 1 :(得分:-1)
好的,我想我明白你现在需要什么。
doInBackground
从它的外观来看,我会说你最好的选择是首先打电话给WebMethod
,你可以轻松检查返回的值是true
还是false
。如果它返回true
,您可以第二次调用WebMethod
并将返回的值保存在String
中。然后,您可以解析String
并将String
保存在您在AsyncTask
或Activity
开头声明的字段中(如果您需要以外的值)得分AsyncTask
然后显然你在Activity
声明了它们。
onPostExecute
您可以轻松地从doInBackground
中获取存储值的字段,并将文本设置为TextView
。
我对WebMethod
或其他任何方面都没有太多经验,所以我无法帮助你(但是,看起来似乎return address
行是无法访问的代码)。< / p>