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

时间:2016-11-12 01:49:32

标签: java android android-webview

我创建了一个公共全局变量,我从子类中分配了数据,我想在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;
    }
}

}

1 个答案:

答案 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进行操作。