Как изменить содержимое 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");
}
});
}