如何使用Javascript更改EditText内容?
我们在HTML中有一个按钮。当用户单击它时,my specific如何使用Javascript更改EditText内容?,javascript,android,html,android-edittext,Javascript,Android,Html,Android Edittext,我们在HTML中有一个按钮。当用户单击它时,my specificEditText的值应该更改,但不会更改 代码: class ActivityTest extends Activity { TextView textView1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); set
EditText
的值应该更改,但不会更改
代码:
class ActivityTest extends Activity {
TextView textView1;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
WebView webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("file:///android_res/raw/htmlimages.html");
webView.addJavascriptInterface(new MyTest(), "Scripts");
webView.getSettings().setJavaScriptEnabled(true);
textView1 = (TextView) findViewById(R.id.textView1);
}
public class MyTest {
void setText(String string)
{
textView1.setText(string);
}
}
}
您不能使用javaScript(任何基于web的语言)更改某些本机视图,JS没有api 您无法访问视图,也无法更改其属性 如果您对web而不是java充满信心,那么您可以在webView上做任何事情。 加载您的web并在那里显示标签,然后您可以使用JS更改所有内容 编辑:正如Bob所说,您可以使用此API从JS注入或调用方法
希望这有帮助。假设您的html部分是正确的,您需要做的一件事是在主线程上进行ui调用 因此,您的代码:
void setText(String string)
{
textView1.setText(string);
}
应该是
@JavascriptInterface
public void setText() {
runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setText("Testing text");
}
});
}
好的,有什么问题吗?编辑文本内容不会改变…textView1.setText(“hossein”)中的硬代码值;在按钮的点击监听器中,你在哪里调用你的
setText
?这不是100%正确…请参阅WebView.addJavascriptInterface:@Bob9630你是对的,我编辑了我的答案,谢谢你纠正我,我回答这个问题时不知道。