Аз съм начинаещ с Android. Опитвам се да променя стойност на textview в дейност в извикване на javascript на webview към интерфейсен клас на javascript. Има уеб изглед и текстов изглед в оформлението на дейността.
MyWebActivity
public class MyWebActivity extends Activity {
...
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String url = "http://myurl...";
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebChromeClient(new WebChromeClient());
webview.loadUrl(url);
webview.addJavascriptInterface(new JsInterface(this), "Android");
}
...
}
JsInterface.java
public class JsInterface {
...
public void setUIText()
{
TextView textView1 = (TextView) ((Activity) mContext).findViewById(R.id.textView1);
/*This line not work*/
textView1.setText("Hello");
/*This line work*/
Toast.makeText(mContext, textView1.getText(), Toast.LENGTH_SHORT).show();
}
}
html файла
Android.setUIText();
Тогава проблемът е, че когато извикам Android.setUIText()
в html файла, той задейства setUIText на JsInterface и не мога да задам текста за textView1
, но мога да получа текста на textView1 с помощта на getText()
.
каква е причината Как мога да го поправя?