Как изменить содержимое EditText на Javascript?

У нас есть кнопка в HTML. Когда пользователь нажимает на нее, значение моего конкретного 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);
        }
    }
}

Ответ 1

Вы не можете изменить собственное собственное представление с помощью javaScript (любой веб-язык), не существует api для JS.

Вы не можете получить доступ к представлениям и не изменять его свойства.

Вы можете делать все в веб-браузере, если вы уверены в сети больше, чем в java. Загрузите свой веб-сайт и покажите там ярлык, затем вы можете изменить все с помощью JS.

Изменить. Вы можете вводить или вызывать методы из JS с помощью этого API, как говорит Боб.

Надеюсь, что это поможет.

Ответ 2

Предполагая, что ваша часть html правильная, вам нужно сделать так, чтобы вы делали вызовы ui в основном потоке.

поэтому ваш код:

void setText(String string) 
{
   textView1.setText(string);
}

должен быть

@JavascriptInterface
public void setText() {
  runOnUiThread(new Runnable() {            
     @Override
     public void run() {
        textView.setText("Testing text");       
     }
  });       
}