我创建了一个公共全局变量,我从子类中分配了数据,我想在onCreate方法中使用该数据。问题是变量在onCreate方法中返回null并返回其他子类中的数据。我只是试图从javascript获取价值并将其存储在onCreate方法的Java变量中。我对Java和android开发相对较新。任何帮助表示赞赏。
public class MainActivity extends AppCompatActivity {
// Initiallising the WebView
private WebView mywebView;
public String userData;
private GoogleApiClient client;
@SuppressLint("JavascriptInterface")
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Webview
mywebView = (WebView) findViewById(R.id.myWebView);
WebSettings webSettings = mywebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mywebView.setWebViewClient(new MyWebViewClient());
mywebView.addJavascriptInterface(new JavascriptBridge(this), "AndUser");
mywebView.loadUrl("file:///android_asset/www/index.html");
Toast t = Toast.makeText(getApplicationContext(), userData+" Tesing..." , Toast.LENGTH_LONG);
t.show(); // returns null Testing...
}
public class JavascriptBridge{
Context mContext;
JavascriptBridge(Context c) {
mContext = c;
}
@JavascriptInterface
public String getUserDetails(String message){
userData = message;
return message;
}
}
}
答案 0 :(得分:0)
我创建了一个公共全局变量,我从子类中分配了数据 我想在onCreate方法中使用该数据。
Java使用oops概念来访问可以改变父值的父变量:即
// parent
public class Parent {
private int value = 0;
public Parent( int initialValue ) {
value = initialValue;
}
public void print() {
System.out.println(value);
}
}
// child class
public class Child extends Parent{
public Child() {
super( 1 ); /// This super keyword change your parent class variable.
}
}
也许如果您在创建网桥时遇到问题,则可以通过此Post进行操作。