如何使用Javascript更改EditText内容?

如何使用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

我们在HTML中有一个按钮。当用户单击它时,my specific
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你是对的,我编辑了我的答案,谢谢你纠正我,我回答这个问题时不知道。