代码无法从webview中的文本框中获取输入表达式

时间:2013-05-09 07:38:28

标签: android android-layout android-intent android-webview

我无法成功获取用户表达式并以吐司形式显示。

例如,在我在onPageFinished中编写一些数学表达式之前,调用textbox函数并完成执行。因此toast上没有显示任何内容。

我希望获得runtime中的输入并显示在toast中。

当我对表达式进行硬编码并将其存储为字符串(final String mathProblem =“2 + 1”;)时,下面的代码工作正常。

但它不适用于我在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(" ");

1 个答案:

答案 0 :(得分:0)

我认为这是问题“javascript:AndroidFunction.showToast(”+ mathProblem +“);” 你只需要这行代码如下

"javascript:AndroidFunction.showToast('"+mathProblem+"');"
它可能会有所帮助。 感谢