0

ユーザー表現を取得してトーストに表示することに成功できませんでした。

たとえば、onPageFinished関数が呼び出されて実行が終了した後、関数に数式を記​​述しtextboxます。したがって、 には何も表示されませんtoast

入力を取得して にruntime表示したいtoast

以下のコードは、式をハードコードして、このように文字列(final String mathProblem="2+1";) として保存すると正常に動作します。

しかし、.csv ファイルに入力したランタイム式では機能しませんtextbox。どんな助けでも大歓迎です。

式を計算するコードは次のとおりです。

final WebView webView=(WebView)findViewById(R.id.webview1); 
webView.setWebChromeClient(new WebChromeClient()); 
webView.setWebViewClient(new WebViewClient() {
    @Override 
    public void onPageFinished(final WebView view,final String url)
    {
       super.onPageFinished(view,url); 
       if(_hasAnsweredQuestion) return; 
       _hasAnsweredQuestion=true; 
       EditText editText1 = (EditText)findViewById(R.id.editText1); 
       String mathProblem=editText1.getText().toString(); 
       final String newUrl="javascript:AndroidFunction.showToast("+mathProblem+");"
       webView.loadUrl(newUrl); 
    }
});

トーストを表示するコードは次のとおりです

webView.getSettings().setJavaScriptEnabled(true); 
webView.addJavascriptInterface(new Object() { 
     @SuppressWarnings("unused") 
     @JavascriptInterface 
     public void showToast(final String webMessage) {
     Toast.makeText(MainActivity.this,webMessage,Toast.LENGTH_SHORT).show(); 
     } 
},"AndroidFunction"); 
webView.loadUrl(" ");
4

1 に答える 1

0

ここに問題があると思います "javascript:AndroidFunction.showToast("+mathProblem+");" 次のようにこの行コードだけ

"javascript:AndroidFunction.showToast('"+mathProblem+"');"

それは役立つかもしれません。ありがとう

于 2013-05-10T06:24:38.667 に答える