2012-12-17 6 views
1

한 레이아웃에서 8-10 개의 다른 WebView를 사용하고 각 WebView에서 다른 내용을로드하고 있습니다.Android WebView 알림을 숨기는 방법?

로딩 웹보기 같은 서로 다른 메시지를 표시하면서 "로드를 ..." "처리 .."이러한 알림을 숨길 수있는 방법이

enter image description here

을 거기에 등?

답변

1

HttpClient을 사용하여 웹 페이지의 HTML 코드를 얻은 다음 WebView.loadData을 사용하여 전체 페이지를 WebView로로드하십시오.

private class exampleHttpTask extends AsyncTask<Integer, Integer, String> { 
    public String convertStreamToString(InputStream is, String charset) throws IOException { 
     if (is != null) { 
      Writer writer = new StringWriter(); 
      char[] buffer = new char[1024]; 
      try { 
       Reader reader = new BufferedReader(new InputStreamReader(is, charset)); 
       int n; 
       while ((n = reader.read(buffer)) != -1) { 
        writer.write(buffer, 0, n); 
       } 
      } finally { 
       is.close(); 
      } 
      return writer.toString(); 
     } else { 
      return ""; 
     } 
    } 

    protected String doInBackground(Integer... params) { 
     String r = ""; 
     try { 
      HttpClient hc = new DefaultHttpClient(); 
      HttpGet get = new HttpGet("http://google.com"); // replace with the url 
      HttpResponse hr = hc.execute(get); 

      if(hr.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { 
       InputStream is = hr.getEntity().getContent(); 
       r = convertStreamToString(is, "UTF-8"); 
      } else { 
       r = "Error"; 
      } 
     } catch(Exception e){ 
      e.printStackTrace(); 
     } 
     return null; 
    } 

    protected void onPostExecute(String result) { 
     WebView wv = (WebView) findViewById(R.id.web_view); // replace web_view with the webView id 
     wv.loadData(result, "text/html", "utf-8"); 
    } 

    protected void onPreExecute() { 
    } 

} 

그런 다음 new exampleHttpTask().exec()을 호출하여 웹 페이지를로드하십시오.

+0

웹 페이지 (인터넷에 연결)에서는 작동하지만 애셋에서 페이지를로드하려면 작동하지 않습니다. 여기에 내 문제를 참조하십시오 : http://stackoverflow.com/q/17145969/1031312 – Ozzy

+0

@ 오지 나는 assests에서로드 및 여러 webviews와 깜박임 피하기 비슷한 문제가 있습니다. 당신은 어떤 해결책을 찾았습니까? – Gaurav