如何在Android listview中调用多个web服务?
我有一个列表视图,其中有三个来自mysql数据库的链接,我正在处理Asynctask,只调用Asynctask,但我 想要在AsyncTask中同时调用两个web服务,以显示我列表中的数据,请发送代码或想法。我没有找到解决办法 我的代码:如何在Android listview中调用多个web服务?,android,Android,我有一个列表视图,其中有三个来自mysql数据库的链接,我正在处理Asynctask,只调用Asynctask,但我 想要在AsyncTask中同时调用两个web服务,以显示我列表中的数据,请发送代码或想法。我没有找到解决办法 我的代码: public class MainActivity extends AppCompatActivity { ListView SubjectListView; ProgressBar progressBarSubject; St
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();
}); } } }
public类MainActivity扩展了AppCompatActivity{
ListView主题ListView;
ProgressBar ProgressBar主题;
字符串ServerURL=”http://192.168.1.233/conn/getTechnicien.php";
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SubjectListView=(ListView)findViewById(R.id.listview1);
新建GetHttpResponse(MainActivity.this).execute(ServerURL);
}
私有类GetHttpResponse扩展异步任务
{
公共语境;
字符串结果文件夹;
公共GetHttpResponse(上下文)
{
this.context=上下文;
}
@凌驾
受保护的void onPreExecute()
{
super.onPreExecute();
}
@凌驾
受保护的ArrayList doInBackground(字符串…arg0)
{
HttpServicesClass httpServiceObject=新建
HttpServicesClass(arg0[0]);
ArrayList subjectsList=新建ArrayList();
尝试
{
httpServiceObject.ExecutePostRequest();
如果(httpServiceObject.getResponseCode()==200)
{
ResultHolder=httpServiceObject.getResponse();
if(ResultHolder!=null)
{
JSONArray JSONArray=null;
试一试{
jsonArray=新的jsonArray(ResultHolder);
JSONObject JSONObject;
受试者;
对于(int i=0;i为什么不能在doInBackground()
方法中执行两个或三个HTTP调用?他只看到第一个url!!