마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

tabHost.setOnTabChangedListener 질문이요..도와주세요..

0 추천

탭호스트를 사용해서 해당되는 탭에 php를 호출하려고합니다.

탭을누르면 url이 DownloadJSONFileAsync 클래스에 전달이 안됩니다ㅜㅜ도와주세요.

tabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
    @Override
    public void onTabChanged(String tabId) {
        if(tabId.equalsIgnoreCase("Tab1")) {
            MyArrList.clear();
            getJSONUrl("http://웹서버/getGallery.php");

        }else if(tabId.equalsIgnoreCase("Tab2")){
            MyArrList.clear();
            getJSONUrl("http://웹서버/getGallery.php");
        }else if(tabId.equalsIgnoreCase("Tab3")){
            MyArrList.clear();
            getJSONUrl("http://웹서버/getGallery.php");
        }else if(tabId.equalsIgnoreCase("Tab4")){
            MyArrList.clear();
            getJSONUrl("http://웹서버/getGallery.php");
        }
    }
});

 

class DownloadJSONFileAsync extends AsyncTask<String, Void, Void> {


     protected void onPreExecute() {
         super.onPreExecute();
         showDialog(DIALOG_DOWNLOAD_JSON_PROGRESS);
     }

     @Override
     protected Void doInBackground(String... params) {
         // TODO Auto-generated method stub

         String url = "http://웹서버/getGallery.php";

         JSONArray data;
         try {
             data = new JSONArray(getJSONUrl(url));

             MyArrList = new ArrayList<HashMap<String, Object>>();
             HashMap<String, Object> map;

             for (int i = 0; i < data.length(); i++) {
                 JSONObject c = data.getJSONObject(i);
                 map = new HashMap<String, Object>();
                 map.put("Name", (String) c.getString("Name"));
                 map.put("ImageName", (String) c.getString("ImageName"));

                 // Thumbnail Get ImageBitmap To Object
                 map.put("ImagePathThum", (String) c.getString("ImagePath_Thumbnail"));
                 map.put("ImageThumBitmap", (Bitmap) loadBitmap(c.getString("ImagePath_Thumbnail")));

                 // Full (for View Popup)
                 map.put("ImagePathFull", (String) c.getString("ImagePath_FullPhoto"));


                 MyArrList.add(map);
             }


         } catch (JSONException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }

         return null;
     }

     protected void onPostExecute(Void unused) {
         ShowAllContent(); // When Finish Show Content
         dismissDialog(DIALOG_DOWNLOAD_JSON_PROGRESS);
         removeDialog(DIALOG_DOWNLOAD_JSON_PROGRESS);
     }


 }

신입생 (510 포인트) 님이 2016년 11월 29일 질문

1개의 답변

0 추천

안녕하세요

AsyncTask 처음 사용하시나봐요?

getJSONUrl("http://웹서버/getGallery.php"); << 이렇게 하시는게 아니라

 

이렇게 하시면 됩니다.

DownloadJSONFileAsync downJsonFileAsync = new DownloadJSONFileAsync();

downJsonFileAsync.execute(params);  // params 는 없을 경우 안넣으셔도 됨

수고하세요

 

히로시 (10,800 포인트) 님이 2016년 11월 29일 답변
감사합니다. 질문하나만 더 드려도될까요?
TAB1을 눌럿을땐 정상적으로 나오는데, TAB2를 눌럿을땐
해당하는PHP호출하고싶습니다, 어떻게하면될까요?
String url = "http://웹서버/getGallery.php"; << 이거를 밖으로 빼셔서 호출하고 싶은 URL를 셋팅해주면 됩니다.


   if(tabId.equalsIgnoreCase("Tab1")) {
            
          url = "A.php";        
          downJsonFileAsync.execute();

        }else if(tabId.equalsIgnoreCase("Tab2")){
          url = "B.php";
          downJsonFileAsync.execute();
        }else if(tabId.equalsIgnoreCase("Tab3")){
          url = "C.php";
          downJsonFileAsync.execute();
        }else if(tabId.equalsIgnoreCase("Tab4")){
          url = "D.php";
          downJsonFileAsync.execute();
        }
...