2011-02-06 6 views
1

내 앱에서 webview를 사용하고 assets/폴더에서 로컬 HTML 파일을로드합니다. HTML 파일 webview에서 res/strings.xml의 모든 문자열을로드하는 방법이 있습니까?webview에서 strings.xml의 값을 사용합니다.

밤새도록 구글과 구글을 시도해 보았지만 어떤 해결책을 찾았는지, 가능한가?

+0

무엇을 사용하고 싶습니까? 그 값을 웹보기에 표시 하시겠습니까? 그렇다면 Resource를 사용하여 해당 문자열을 가져 와서 웹보기에 콘텐츠로 전달하십시오. – xandy

+0

어떻게 문자열을 사용 하시겠습니까? Webview와 android 객체는 javascript를 사용하여 서로 대화 할 수 있습니다. (데모는 안드로이드 샘플에서 사용 가능). 예를 들어 버튼 클릭으로 경고 메시지를 표시 할 수 있습니다. 안드로이드에서 전달한 경고 메시지는 string.xml에 저장됩니다. –

+0

@xandy : 예, 그게 내가 뭘하고 싶어하는지,하지만 그걸 할 수있는 적절한 방법을 발견 havnt, 또는 자바에서 문자열을 사용하는 방법에 대한 예제를로드하는 HTML 파일에 전달하는 방법 shure하지 webview – Jerry

답변

1

@ doc_180처럼 자바 스크립트를 사용하는 것이 좋습니다. 이 example은 문자열을 삽입하는 좋은 방법이 될 수 있습니다.

그러나 물론, 당신은 쉽게 일을 할 수있다, 예를 들어, 당신은 웹보기에 전달하는 HTML은 다음과 같습니다

다음
<body> 
    <h1>$REPLACE_THIS</h1> 
    ... 

당신이 HTML로를 추가하기 전에 당신이 단순히 문자열 교체/정규식 대체 할 수있는 자신의 사출 문자열에 대한 webview.

예.

String html = ... // Any method to load the html file into string 
html = html.replace("$REPLACE_THIS", getResouces().getString(R.string.replacement)); 
webview.loadData(html, "text/html", "utf-8"); 

업데이트

그것은 동적 R.string에서 상수 문자열을 참조에 그가 필요로 밝혀; 수행 방법은 다음과 같습니다.

public String getStringFromRes(String name){ 
    try{ 
     int resId = R.string.class.getField(name).get(null); 
     return getResources().getString(resId); 
    }catch(Exception e){ 
     // no such string 
     return "empty"; 
    } 
} 
+0

음, 이걸 봐라.하지만 잘 작동하지 않을거야. 메신저 webviev 이런 식으로로드 : webView.loadUrl ("file : ///android_asset/findgps_en.html"); 로컬 HTML 파일이 내 앱에서 잠시 후에로드됩니다. 자산/폴더의 다른 로컬 HTML 파일로 리디렉션됩니다. – Jerry

+0

여기에 내용이 누락되었을 수 있지만 해당 사례가 하나의 문자열을 변경/삽입하는 데 적합하다고 생각됩니다. ..하지만 내가 무엇을하고 싶지 res/strings.xml에 html 페이지에 내가 webview에로드 된 – Jerry

+0

에있는 모든 찌르는를 사용할 수있을 것입니다 그래서 아무도 HTML 뷰어로로드 된 HTML 파일을 가능하게 만드는 방법에 대한 아이디어가 없습니다 /res/strings.xml에있는 모든 문자열을 사용 하시겠습니까? – Jerry

관련 문제