0

我无法成功获取用户表达式并显示在 toast 中。

例如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(" ");
4

1 回答 1

0

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

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

它可能会有所帮助。谢谢

于 2013-05-10T06:24:38.667 回答