首页 > 解决方案 > 如何在 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();
             }); }  } }

标签: android

解决方案


推荐阅读