Android 当我点击cityname时,这个城市的所有医院都会显示在listview中

Android 当我点击cityname时,这个城市的所有医院都会显示在listview中,android,Android,我是android新手,正在学习Json 我有两个Web服务。。。。。。。。。。。。。。。。 在一项服务中,我有city\u name和city\u id,在另一项服务中,我有Hospital\u name和 Hospital\u id 现在,我的任务是首先以listview表单first webservice显示所有城市的列表 这就是我现在所做的 我的第二个任务是,当我点击第一个城市名称时,假设我点击了 纽约那么纽约的所有医院都应该在listview中显示。 我是否需要其他Web服务或其他服务

我是android新手,正在学习Json

我有两个Web服务。。。。。。。。。。。。。。。。 在一项服务中,我有
city\u name
city\u id
,在另一项服务中,我有
Hospital\u name
Hospital\u id

现在,我的任务是首先以listview表单first webservice显示所有城市的列表 这就是我现在所做的

我的第二个任务是,当我点击第一个城市名称时,假设我点击了 纽约那么纽约的所有医院都应该在listview中显示。

我是否需要其他Web服务或其他服务

我只有两个Web服务。有可能从这两个方面做第二个任务吗 服务。请帮帮我

这是我在listview中显示来自第一个服务的cityname的代码

 public class CityNameActivity extends ListActivity{
ListView list;

private ProgressDialog pDialog;
// URL to get Cities JSON
private static String url = "http://14.140.200.186/Hospital/get_city.php";
// JSON Node names
private static final String TAG_CITIES = "Cities";
//private static final String TAG_ID = "id";
private static final String TAG_NAME = "city_name";
// Cities JSONArray
JSONArray Cities = null;
// Hashmap for ListView
ArrayList<HashMap<String, String>> citylist;
//ArrayList<String> citylist;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.cityname_activity_main);
    ListView listView=getListView();
    citylist = new ArrayList<HashMap<String, String>>();
  // list.setOnClickListener(this);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {

            Intent in = new Intent(getApplicationContext(),
                    Specialities_Activity.class);

            startActivity(in);}
        });
            new GetCities().execute();
        }
/**
 * Async task class to get json by making HTTP call
 * */
private class GetCities extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        // Showing progress dialog
        pDialog = new ProgressDialog(CityNameActivity.this);
        pDialog.setMessage("Please wait...");
        pDialog.setCancelable(false);
        pDialog.show();

    }

    @Override
    protected Void doInBackground(Void... arg0) {
        // Creating service handler class instance
        ServiceHandler sh = new ServiceHandler();

        // Making a request to url and getting response
        String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);

        Log.d("Response: ", "> " + jsonStr);

        if (jsonStr != null) {
            try {
                JSONObject jsonObj = new JSONObject(jsonStr);

                // Getting JSON Array node
                Cities = jsonObj.getJSONArray(TAG_CITIES);

                // looping through All Cities
                for (int i = 0; i < Cities.length(); i++) {
                    JSONObject c = Cities.getJSONObject(i);

                    //String id = c.getString(TAG_ID);
                    String name = c.getString(TAG_NAME);
                    HashMap<String, String> Cities = new HashMap<String, String>();
                    Cities.put(TAG_NAME, name);


                    // adding contact to Cities list
                    citylist.add(Cities);


                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        } else {
            Log.e("ServiceHandler", "Couldn't get any data from the url");
        }

        return null;
    }

    @Override
    protected void onPostExecute(Void result)
    {
        super.onPostExecute(result);
        // Dismiss the progress dialog
        if (pDialog.isShowing())
            pDialog.dismiss();
        /**`enter code here`
         * Updating parsed JSON data into ListView
         * */
        ListAdapter adapter = new SimpleAdapter(CityNameActivity.this, citylist, R.layout.city_list_item, new String[] { TAG_NAME}, new int[] { R.id.name});
        setListAdapter(adapter);




    }
}
公共类CityNameActivity扩展了ListActivity{
列表视图列表;
私人对话;
//获取城市JSON的URL
专用静态字符串url=”http://14.140.200.186/Hospital/get_city.php";
//JSON节点名称
私有静态最终字符串TAG_CITIES=“CITIES”;
//私有静态最终字符串标记\u ID=“ID”;
私有静态最终字符串TAG_NAME=“city_NAME”;
//杰索纳雷城市酒店
JSONArray Cities=null;
//ListView的Hashmap
ArrayList citylist;
//ArrayList citylist;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.cityname\u activity\u main);
ListView ListView=getListView();
citylist=newarraylist();
//list.setOnClickListener(此);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
Intent in=新的Intent(getApplicationContext(),
专业(活动类);
星触觉(in);}
});
新建GetCities().execute();
}
/**
*异步任务类通过HTTP调用获取json
* */
私有类GetCities扩展异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
//显示进度对话框
pDialog=newprogressdialog(CityNameActivity.this);
setMessage(“请稍候…”);
pDialog.setCancelable(假);
pDialog.show();
}
@凌驾
受保护的Void doInBackground(Void…arg0){
//创建服务处理程序类实例
ServiceHandler sh=新的ServiceHandler();
//向url发出请求并获得响应
字符串jsonStr=sh.makeServiceCall(url,ServiceHandler.GET);
Log.d(“响应:”、“>”+jsonStr);
if(jsonStr!=null){
试一试{
JSONObject jsonObj=新的JSONObject(jsonStr);
//获取JSON数组节点
Cities=jsonObj.getJSONArray(TAG_Cities);
//环游所有城市
对于(int i=0;i
这是代码,我在其中显示第二服务的医院列表

   public class HospitalList_Activity extends ListActivity {
private ProgressDialog pDialog;
// URL to get Hospitals JSON
private static String url = "http://14.140.200.186/hospital/get_hospital.php";
// JSON Node names
private static final String TAG_HOSPITAL = "Hospitals";
//private static final String TAG_ID = "id";
private static final String TAG_NAME = "hospital_name";
// Hospitals JSONArray
JSONArray Hospitals = null;
// Hashmap for ListView
ArrayList<HashMap<String, String>> hospitallist;
//ArrayList<String> citylist;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_hospital_list_);
    ListView listView=getListView();
    hospitallist = new ArrayList<HashMap<String, String>>();
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {

            Intent in = new Intent(getApplicationContext(), Specialities_Activity.class);
            startActivity(in);
        }
    });
    new GetHospitals().execute();
}
/**
 * Async task class to get json by making HTTP call
 * */
private class GetHospitals extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        // Showing progress dialog
        pDialog = new ProgressDialog(HospitalList_Activity.this);
        pDialog.setMessage("Please wait...");
        pDialog.setCancelable(false);
        pDialog.show();

    }

    @Override
    protected Void doInBackground(Void... arg0) {
        // Creating service handler class instance
        ServiceHandler sh = new ServiceHandler();

        // Making a request to url and getting response
        String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);

        Log.d("Response: ", "> " + jsonStr);

        if (jsonStr != null) {
            try {
                JSONObject jsonObj = new JSONObject(jsonStr);

                // Getting JSON Array node
                Hospitals = jsonObj.getJSONArray(TAG_HOSPITAL);

                // looping through All Cities
                for (int i = 0; i < Hospitals.length(); i++) {
                    JSONObject c = Hospitals.getJSONObject(i);

                    //String id = c.getString(TAG_ID);
                    String name = c.getString(TAG_NAME);
                    HashMap<String, String> Hospitals = new HashMap<String, String>();
                    Hospitals.put(TAG_NAME, name);


                    // adding contact to Cities list
                    hospitallist.add(Hospitals);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        } else {
            Log.e("ServiceHandler", "Couldn't get any data from the url");
        }

        return null;
    }

    @Override
    protected void onPostExecute(Void result)
    {
        super.onPostExecute(result);
        // Dismiss the progress dialog
        if (pDialog.isShowing())
            pDialog.dismiss();
        /**`enter code here`
         * Updating parsed JSON data into ListView
         * */
        ListAdapter adapter = new SimpleAdapter(HospitalList_Activity.this, hospitallist, R.layout.hospital_list_item, new String[] { TAG_NAME}, new int[] { R.id.name});
        setListAdapter(adapter);




    }
}
公共类HospitalList_活动扩展了ListActivity{
私人对话;
//获取JSON的URL
专用静态字符串url=”http://14.140.200.186/hospital/get_hospital.php";
//JSON节点名称
私人静态最终字符串TAG_HOSPITAL=“Hospitals”;
//私有静态最终字符串标记\u ID=“ID”;
私有静态最终字符串TAG_NAME=“hospital_NAME”;
//杰索纳雷医院
JSONArray医院=空;
//ListView的Hashmap
ArrayList医院医生;
//ArrayList citylist;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局、活动、医院、列表);
ListView ListView=getListView();
hospitallist=新ArrayList();
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
Intent in=新的Intent(getApplicationContext(),Specialities\u Activity.class);
星触觉(in);
}
});
新建GetHospitals().execute();
}
/**
*异步任务类通过HTTP调用获取json
* */
私有类GetAsyncTask{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
//显示进度对话框
pDialog=新建进度对话框(HospitalList_Activity.this);
setMessage(“请稍候…”);
pDialog.setCancelable(假);
pDialog.show();
}
@凌驾
受保护的Void doInBackground(Void…arg0){
//创建服务处理程序类实例
ServiceHandler sh=新的ServiceHandler();
//请求
 public class CityNameActivity extends ListActivity{
ListView list;

private ProgressDialog pDialog;
// URL to get Cities JSON
private static String url = "http://14.140.200.186/Hospital/get_city.php";
// JSON Node names
private static final String TAG_CITIES = "Cities";
//private static final String TAG_ID = "id";
private static final String TAG_NAME = "city_name";
// Cities JSONArray
JSONArray Cities = null;
// Hashmap for ListView
ArrayList<HashMap<String, String>> citylist;
//ArrayList<String> citylist;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.cityname_activity_main);
    ListView listView=getListView();
    citylist = new ArrayList<HashMap<String, String>>();
  // list.setOnClickListener(this);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {

               String temp= citylist.get(position).get(TAG_ID);
         Intent in = new Intent(getApplicationContext(),
                Specialities_Activity.class);

        in.putExtra("city_id",temp);
        startActivity(in);}
        });
            new GetCities().execute();
        }
/**
 * Async task class to get json by making HTTP call
 * */
private class GetCities extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        // Showing progress dialog
        pDialog = new ProgressDialog(CityNameActivity.this);
        pDialog.setMessage("Please wait...");
        pDialog.setCancelable(false);
        pDialog.show();

    }

    @Override
    protected Void doInBackground(Void... arg0) {
        // Creating service handler class instance
        ServiceHandler sh = new ServiceHandler();

        // Making a request to url and getting response
        String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);

        Log.d("Response: ", "> " + jsonStr);

        if (jsonStr != null) {
            try {
                JSONObject jsonObj = new JSONObject(jsonStr);

                // Getting JSON Array node
                Cities = jsonObj.getJSONArray(TAG_CITIES);

                // looping through All Cities
                for (int i = 0; i < Cities.length(); i++) {
                    JSONObject c = Cities.getJSONObject(i);

                    String id = c.getString(TAG_ID);
                    String name = c.getString(TAG_NAME);
                    HashMap<String, String> Cities = new HashMap<String, String>();

                    Cities.put(TAG_ID, id);

                    Cities.put(TAG_NAME, name);



                    // adding contact to Cities list
                    citylist.add(Cities);


                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        } else {
            Log.e("ServiceHandler", "Couldn't get any data from the url");
        }

        return null;
    }

    @Override
    protected void onPostExecute(Void result)
    {
        super.onPostExecute(result);
        // Dismiss the progress dialog
        if (pDialog.isShowing())
            pDialog.dismiss();
        /**`enter code here`
         * Updating parsed JSON data into ListView
         * */
        ListAdapter adapter = new SimpleAdapter(CityNameActivity.this, citylist, R.layout.city_list_item, new String[] { TAG_NAME}, new int[] { R.id.name});
        setListAdapter(adapter);




    }
}
public class HospitalList_Activity extends ListActivity {
private ProgressDialog pDialog;
// URL to get Hospitals JSON
private static String url = "http://14.140.200.186/hospital/get_hospital.php";
// JSON Node names
private static final String TAG_HOSPITAL = "Hospitals";
private static final String TAG_ID = "id";
private static final String TAG_NAME = "hospital_name";
private static final String TAG_CITY_ID = "city_id";

// Hospitals JSONArray
JSONArray Hospitals = null;
// Hashmap for ListView
ArrayList<HashMap<String, String>> hospitallist;
//ArrayList<String> citylist;

String cid;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_hospital_list_);
    ListView listView=getListView();

    Intent in=getIntent;
    cid= intent.getExtra("city_id");

    hospitallist = new ArrayList<HashMap<String, String>>();
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {

            Intent in = new Intent(getApplicationContext(), Specialities_Activity.class);
            startActivity(in);
        }
    });
    new GetHospitals().execute();
}
/**
 * Async task class to get json by making HTTP call
 * */
private class GetHospitals extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        // Showing progress dialog
        pDialog = new ProgressDialog(HospitalList_Activity.this);
        pDialog.setMessage("Please wait...");
        pDialog.setCancelable(false);
        pDialog.show();

    }

    @Override
    protected Void doInBackground(Void... arg0) {
        // Creating service handler class instance
        ServiceHandler sh = new ServiceHandler();

        // Making a request to url and getting response
        String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);

        Log.d("Response: ", "> " + jsonStr);

        if (jsonStr != null) {
            try {
                JSONObject jsonObj = new JSONObject(jsonStr);

                // Getting JSON Array node
                Hospitals = jsonObj.getJSONArray(TAG_HOSPITAL);

                // looping through All Cities
                for (int i = 0; i < Hospitals.length(); i++) {
                    JSONObject c = Hospitals.getJSONObject(i);

                    String id = c.getString(TAG_ID);
                    String name = c.getString(TAG_NAME);
                    String city_id = c.getString(TAG_CITY_ID);

                    HashMap<String, String> Hospitals = new HashMap<String, String>();

                    if(cid.equals(city_id)){                
                    Hospitals.put(TAG_NAME, name);
                     // adding contact to Cities list
                    hospitallist.add(Hospitals);
                     }



                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        } else {
            Log.e("ServiceHandler", "Couldn't get any data from the url");
        }

        return null;
    }

    @Override
    protected void onPostExecute(Void result)
    {
        super.onPostExecute(result);
        // Dismiss the progress dialog
        if (pDialog.isShowing())
            pDialog.dismiss();
        /**`enter code here`
         * Updating parsed JSON data into ListView
         * */
        ListAdapter adapter = new SimpleAdapter(HospitalList_Activity.this, hospitallist, R.layout.hospital_list_item, new String[] { TAG_NAME}, new int[] { R.id.name});
        setListAdapter(adapter);




    }
}