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

SharedPreferences pref로 저장한 소스를 Webview로 띄우게 하는법(왕초보주의)

0 추천

제가 버튼을 누르면 네이버 소스를 SharedPreferences pref 에다가 저장한 다음에 webview로 띄우게 하려고 하는데요 webview화면에 계속 하얀색 화면만 뜹니다...도와주세요

<MAIN>

public class mainpage extends AppCompatActivity {
    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mainpage);
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                SharedPreferences sf = getSharedPreferences("naversos", MODE_PRIVATE);
                SharedPreferences sharedPreferences = getSharedPreferences("naversos", MODE_PRIVATE);
                SharedPreferences.Editor editor = sharedPreferences.edit();
                AsyncTask<Void, String, String> text;
                text = new Description().execute();
                editor.putString("text", String.valueOf(text));
                editor.commit();


                Intent intent = new Intent(mainpage.this, web.class);
                startActivity(intent);


            }

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

                @Override
                protected void onPreExecute() {
                    super.onPreExecute();
                }
                @Override
                protected String doInBackground(Void... params) {

                    String html = "";
                    try {
                        Document doc = Jsoup.connect("https://m.naver.com/").get();
                        Elements HTML = doc.select("html.fzoom");//여기서 네이버 소스 전체를 저장시켜야 하는데 이렇게 하는게 맞나요?
                        html = HTML.text();
                        return html;
                    }
                    catch (IOException e) {
                        e.printStackTrace();
                    }

                    return null;
                    }
        }
    });
}
}








<Webview띄우는 페이지>

public class web extends AppCompatActivity {
    WebView web;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        web= (WebView)findViewById(R.id.web);
        web.loadUrl(getPreferences());


    }
    private String getPreferences(){
        SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE);

        return pref.getString("naversos", "");
    }

}
제가 아직 초보라서 뭐가 잘못됬는지도 모르겠습니다..ㅠㅠ
뭔가 잘못된 부분좀 알려주세요
 
 
 
 
 
샤워댄스의 수호자 (210 포인트) 님이 2020년 3월 24일 질문

1개의 답변

0 추천

webview에서 loadUrl은 url 주소로 이동하는 코드입니다. loadurl로는 파싱후에 저장한 html 코드를 띄울수가 없습니다.

webview에서 html은 webview.loadData()로 띄웁니다. 

mimetype과 encoding을 지정해주어야 합니다.

올려주신 코드에 사용하면 간단하게 아래와 같이 사용하면 html 데이터를 웹뷰로 로드할 수 있습니다.

web.loadData(getPreferences(), "text/html; charset=utf-8", "utf-8");

 

커피콩 (3,640 포인트) 님이 2020년 3월 31일 답변
...