我无法成功获取用户表达式并以吐司形式显示。
例如,在我在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(" ");
答案 0 :(得分:0)
我认为这是问题“javascript:AndroidFunction.showToast(”+ mathProblem +“);” 你只需要这行代码如下
"javascript:AndroidFunction.showToast('"+mathProblem+"');"
它可能会有所帮助。
感谢