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

AsyncTask로 웹에 있는 DB 값은 리스트로 구현했는데 검색은 어떻게 하나요?

0 추천
private class JsonLoadingTask extends AsyncTask<String, Void, String[]> {

        @Override
        protected String[] doInBackground(String... url) {
            return getStringFromUrl(url[0]);
        }
    }

    public String[] getStringFromUrl(String pUrl) {
        BufferedReader bufreader = null;
        HttpURLConnection urlConnection = null;
        StringBuffer page = new StringBuffer();
        String[] fd = null;
        try {
            URL url = new URL(pUrl);
            urlConnection = (HttpURLConnection) url.openConnection();
            InputStream contentStream = urlConnection.getInputStream();
            bufreader = new BufferedReader(new InputStreamReader(contentStream,
                    "UTF-8"));
            String line = null;
            while ((line = bufreader.readLine()) != null) {
                page.append(line);
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                bufreader.close();
                urlConnection.disconnect();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (NullPointerException e){
                e.printStackTrace();
            }
        }
        try {
            String jsonPage = page.toString();
            JSONArray ja = new JSONArray(jsonPage);
            arSize = ja.length();
            imgUrl = new String[arSize];
            gname = new String[arSize];
            closingdate = new String[arSize];
            glocal = new String[arSize];
            JSONObject jo = new JSONObject();
            for (int i = 0; i < arSize; i++) {
                jo = ja.getJSONObject(i);
                imgUrl[i] = "이미지 폴더경로"
                        + jo.getString("img").toString();
                gname[i] = jo.getString("gname");
                closingdate[i] = jo.getString("closingdate");
                glocal[i] = jo.getString("glocal");
            }
        } catch (Exception e) {
        }
        return fd;
    }

검색 기능을 구현 하고 싶은데 현재 이 AsyncTask로  검색까지해서

 

프래그먼트안에 있는 리스트뷰를 갱신을 가능할가요?

 

불러오고 어댑터로 부려주는건 되는데 여기위에 에디트박스로 검색창을 하나 만들었습니다

 

그리고 거기서 해당 문자열 값을 얻어와서 php문으로 쿼리를 보낸뒤 다시 받아오는건데 방법이 없을까요?

 

php문 자체는 완성이 되있습니다

 

 

도그풋러 (640 포인트) 님이 2015년 6월 8일 질문

1개의 답변

0 추천
URL url = new URL(pUrl); 부분에 pUrl 값에 검색어를 포함하시고 서버에서는 해당 내용을 처리하시면 됩니다.

 

가령 url 이 http://test.com/list.php 였다면은 http://test.com/list.php?query=검색어

식인거죠 주의점은 urlencode 을 해서 전달해야 하는 것 입니다. 먼저 browser 에서 테스트 후 진행하세요

query 에대한 sql where 절 예외 처리도 php 에서 추가하는것 잊지 마시구요
aucd29 (218,390 포인트) 님이 2015년 6월 16일 답변
...