在子类中分配一个全局变量并在 onCreate 方法中使用它 - Android

Assign a global variable in a subclass and use it in the onCreate method - Android

我创建了一个 public 全局变量,我从子类中为它分配了数据,我想在 onCreate 方法中使用该数据。问题是 onCreate 方法中的变量 returns null 而其他子类中的数据 returns 。我只是想从 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;
    }
}

}

I created a public global variable, I assigned data it from a subclass and I want to use that data in the onCreate method.

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