android - 如何在 Android 列表视图中调用多个 Web 服务?
问题描述
我有一个列表视图,其中三个给定从 mysql 数据库链接,我正在处理 Asynctask,只需调用 AsyncTask,但我想在 AsyncTask 中一起调用两个 Web 服务,以显示我列表中的数据,你能发送一个代码或想法。我没有找到解决方案。
我的代码:
public class MainActivity extends AppCompatActivity {
ListView SubjectListView;
ProgressBar progressBarSubject;
String ServerURL = "http://192.168.1.233/conn/getTechnicien.php";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SubjectListView = (ListView) findViewById(R.id.listview1);
new GetHttpResponse(MainActivity.this).execute(ServerURL);
}
private class GetHttpResponse extends AsyncTask<String, Void,
ArrayList<subjects>>
{
public Context context;
String ResultHolder;
public GetHttpResponse(Context context)
{
this.context = context;
}
@Override
protected void onPreExecute()
{
super.onPreExecute();
}
@Override
protected ArrayList<subjects> doInBackground(String... arg0)
{
HttpServicesClass httpServiceObject = new
HttpServicesClass(arg0[0]);
ArrayList<subjects> subjectsList = new ArrayList<subjects>();
try
{
httpServiceObject.ExecutePostRequest();
if(httpServiceObject.getResponseCode() == 200)
{
ResultHolder = httpServiceObject.getResponse();
if(ResultHolder != null)
{
JSONArray jsonArray = null;
try {
jsonArray = new JSONArray(ResultHolder);
JSONObject jsonObject;
subjects subjects;
for(int i=0; i<jsonArray.length(); i++)
{
subjects = new subjects();
jsonObject = jsonArray.getJSONObject(i);
subjects.SubjectName =
jsonObject.getDouble("tarif");
subjectsList.add(subjects);
}
Toast.LENGTH_SHORT).show();
}
catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
Toast.makeText(context, httpServiceObject.getErrorMessage(),
Toast.LENGTH_LONG).show();
}
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return subjectsList;
}
@Override
protected void onPostExecute(ArrayList<subjects> result1)
{
final ArrayList<subjects> result=result1;
Toast.makeText(context, "Size:- " +result.size(),
Toast.LENGTH_SHORT).show();
progressBarSubject.setVisibility(View.GONE);
SubjectListView.setVisibility(View.VISIBLE);
if(result.size() != 0)
{
final ListAdapterClass adapter = new ListAdapterClass(result,
context);
SubjectListView.setAdapter(adapter);
SubjectListView.setOnItemClickListener(new
AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view,
int pos, long id) {
String selectedItem =
parent.getItemAtPosition(pos).toString();
}); } } }
解决方案
推荐阅读
- vb.net - VB.net 中的 3D 插值
- python - 在 XML 中查找和替换 CDATA 属性值 - Python
- ios - React Native Push Notifications,FCM 说令牌仅在 iOS 上无效(Android 有效)
- sql - 从两个连接表返回统计信息
- regex - 正则表达式匹配直到逗号
- authentication - Blazor Server Signalr 集线器缺少用户声明
- python - Spyder 4.2.1 (Anaconda 1.10.0) 中缺少依赖项
- google-apps-script - 谷歌表格继续编辑如果 - 继续编辑如果不是
- ios - 为什么我要outlet所有的标签来本地化,object id的作用是什么
- java - 在java中对文本文件行进行排序